@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:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;border-radius:var(--radius-full);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.search-bar__trigger:hover{background:var(--color-neutral-100);color:var(--color-text)}.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-variant-numeric:tabular-nums;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:color-mix(in srgb,var(--color-bg) 82%,transparent);backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:0 var(--space-md);z-index:100}.header__left{display:flex;align-items:center;gap:var(--space-xs);min-width:0}.header__icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border:none;border-radius:var(--radius-full);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.header__icon-btn:hover{background-color:var(--color-neutral-100);color:var(--color-text)}.header__icon-btn:disabled{opacity:.4;cursor:default}.header__brand{display:inline-flex;align-items:center;gap:10px;min-width:0}.header__logo{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;border-radius:9px;background:linear-gradient(135deg,var(--color-primary-500),var(--color-action-bg));color:var(--color-on-action)}.header__brand-name{font-size:var(--font-size-base);font-weight:600;letter-spacing:-.01em;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header__prefs{display:flex;align-items:center;gap:var(--space-xs)}.header__dropdown-prefs{display:none}.header__right{position:relative;display:flex;align-items:center;gap:var(--space-xs)}.header__user-btn{display:flex;align-items:center;gap:var(--space-sm);border:none;background:none;cursor:pointer;padding:4px;border-radius:var(--radius-full)}.header__avatar{position:relative;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-full);background-color:var(--color-action-bg);color:var(--color-on-action);font-weight:600;font-size:var(--font-size-sm)}.header__avatar .sync-status{position:absolute;right:-2px;bottom:-2px;padding:2px;border-radius:var(--radius-full);background-color:var(--color-bg)}.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-name{font-size:15px}.header__prefs{display:none}.header__dropdown-prefs{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md)}}.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);border-right:1px solid var(--color-border);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-text-secondary);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:var(--color-neutral-100);color:var(--color-text)}.sidebar__link--active,.sidebar__link--active:hover{background-color:color-mix(in srgb,var(--color-action-bg) 14%,transparent);color:var(--color-primary-600)}.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-action-bg);color:var(--color-on-action)}.install-prompt__btn--install:hover{background:var(--color-action-bg-hover)}.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);overscroll-behavior:contain}@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;max-height:90dvh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.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;max-height:85dvh;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-action-bg);color:var(--color-on-action)}.btn--primary:hover:not(:disabled){background-color:var(--color-action-bg-hover)}.btn--secondary{background-color:var(--color-neutral-100);color:var(--color-text);border-color:var(--color-neutral-300)}.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)}.bottom-nav{display:none}@media(max-width:768px){.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:90;display:flex;justify-content:space-around;align-items:stretch;height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background-color:color-mix(in srgb,var(--color-bg-card) 92%,transparent);backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px);border-top:1px solid var(--color-border)}}.bottom-nav__item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:none;background:none;color:var(--color-text-muted);font:inherit;font-size:11px;font-weight:500;text-decoration:none;cursor:pointer;transition:color var(--transition-fast)}.bottom-nav__item span{white-space:nowrap}.bottom-nav__item--active{color:var(--color-primary-600)}.app-layout{min-height:100vh}.app-layout__main{margin-top:var(--header-height);margin-left:var(--sidebar-width);padding:var(--space-lg);min-width:0;transition:margin-left var(--transition-base);min-height:calc(100vh - var(--header-height))}@media(max-width:768px){.app-layout__main{margin-left:0;padding-bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom) + var(--space-lg))}}@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)}.input-group__hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.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}.select-native{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;opacity:0;pointer-events:none}.select-trigger{display:flex;align-items:center;gap:var(--space-sm);width:100%;min-height:44px;text-align:left;cursor:pointer;font:inherit;color:var(--color-text)}.select-trigger:disabled{cursor:not-allowed;opacity:.6}.select-trigger__icon{display:inline-flex;color:var(--color-text-secondary)}.select-trigger__value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-trigger__value--placeholder{color:var(--color-text-muted)}.select-trigger__meta{flex-shrink:0}.select-trigger__chevron{flex-shrink:0;color:var(--color-text-muted);transition:transform var(--transition-fast)}.select-trigger[aria-expanded=true] .select-trigger__chevron{transform:rotate(180deg)}.select-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;pointer-events:none}.select-layer__scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000073;pointer-events:auto;animation:select-fade .15s ease-out}.select-pop{position:fixed;display:flex;flex-direction:column;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;pointer-events:auto;animation:select-pop .14s ease-out}.select-layer--sheet .select-pop{left:0;right:0;bottom:0;max-height:70dvh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;border-bottom:none;padding-bottom:env(safe-area-inset-bottom);animation:select-sheet .2s cubic-bezier(.2,.8,.2,1)}.select-pop__handle{width:36px;height:4px;margin:8px auto 4px;border-radius:var(--radius-full);background:var(--color-border);flex-shrink:0}.select-pop__search{display:flex;align-items:center;gap:var(--space-sm);margin:var(--space-sm);padding:0 var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-input);color:var(--color-text-muted);flex-shrink:0}.select-pop__search input{flex:1;min-width:0;height:40px;border:none;background:none;color:var(--color-text);font:inherit;font-size:16px}.select-pop__search input:focus{outline:none}.select-pop__list{list-style:none;margin:0;padding:var(--space-xs);overflow-y:auto;overscroll-behavior:contain}.select-pop__list:focus{outline:none}.select-pop__group{margin-top:var(--space-xs);padding:var(--space-sm) var(--space-sm) var(--space-xs);border-top:1px solid var(--color-border);font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary)}.select-pop__group:first-child{margin-top:0;border-top:none}.select-pop__option{display:flex;align-items:center;gap:var(--space-sm);min-height:52px;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);color:var(--color-text);cursor:pointer}.select-pop__option--nested{padding-left:var(--space-md)}.select-pop__option--placeholder{color:var(--color-text-muted)}.select-pop__option:hover,.select-pop__option--active{background:var(--color-neutral-100)}.select-pop__option[aria-selected=true]{background:color-mix(in srgb,var(--color-action-bg) 12%,transparent);color:var(--color-primary-600);font-weight:500}.select-pop__option[aria-disabled=true]{opacity:.45;cursor:default}.select-pop__icon{display:inline-flex;color:var(--color-text-secondary)}.select-pop__label{flex:1;min-width:0;overflow-wrap:anywhere}.select-pop__meta{flex-shrink:0;margin-left:var(--space-sm)}.select-pop__check{flex-shrink:0}.select-pop__empty{padding:var(--space-md);text-align:center;color:var(--color-text-muted)}@keyframes select-fade{0%{opacity:0}}@keyframes select-pop{0%{opacity:0;transform:translateY(-4px)}}@keyframes select-sheet{0%{transform:translateY(100%)}}@media(prefers-reduced-motion:reduce){.select-pop,.select-layer__scrim{animation:none}}.select-opt-tile{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:color-mix(in srgb,var(--opt-color) 20%,var(--color-neutral-100));color:color-mix(in srgb,var(--opt-color) 75%,var(--color-text))}.select-opt-tile .lucide{vertical-align:0}.select-opt-amount{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text);white-space:nowrap}.select-opt-amount--negative{color:var(--color-balance-negative)}.select-pop__option[aria-selected=true] .select-opt-amount:not(.select-opt-amount--negative){color:inherit}.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-action-bg);color:var(--color-on-action)}.calc-overlay__key--equals:active{background-color:var(--color-action-bg-hover)}.calc-overlay__done{width:100%;padding:var(--space-sm);border:none;border-radius:var(--radius-md);background-color:var(--color-action-bg);color:var(--color-on-action);font-size:var(--font-size-base);font-weight:600;font-family:var(--font-family);cursor:pointer}.calc-overlay__done:active{background-color:var(--color-action-bg-hover)}.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-input);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:44px}.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{flex-shrink:0;color:var(--color-text-muted);transition:transform var(--transition-fast)}.cat-tree-select__arrow--open{transform:rotate(180deg)}.cat-tree-select__value-icon{margin-right:6px}.cat-tree-select__value-parent{color:var(--color-text-muted)}.cat-tree-select__chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--space-sm)}.cat-tree-select__chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border:1px solid var(--color-neutral-300);border-radius:var(--radius-full);background:var(--color-neutral-100);color:var(--color-text);font:inherit;font-size:var(--font-size-sm);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.cat-tree-select__chip--active{background:color-mix(in srgb,var(--color-action-bg) 20%,var(--color-bg-card));border-color:color-mix(in srgb,var(--color-action-bg) 60%,transparent);color:var(--color-primary-600);font-weight:600}.cat-tree-select__chip--more{background:transparent;color:var(--color-primary-600);font-weight:500}.cat-tree-select__dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:50;display:flex;flex-direction:column;max-height:360px;background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);overflow:hidden}.cat-picker__search{display:flex;align-items:center;gap:var(--space-sm);margin:var(--space-sm);padding:0 var(--space-sm);border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);background:var(--color-bg-input);color:var(--color-text-muted);flex-shrink:0}.cat-picker__search input{flex:1;min-width:0;height:44px;border:none;background:none;color:var(--color-text);font:inherit;font-size:16px}.cat-picker__search input:focus{outline:none}.cat-picker__search-clear{display:inline-flex;padding:6px;border:none;border-radius:var(--radius-full);background:none;color:var(--color-text-muted);cursor:pointer}.cat-picker__list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 var(--space-xs) var(--space-sm)}.cat-picker__item{display:flex;align-items:center}.cat-picker__item--child{padding-left:60px}.cat-picker__toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:48px;flex-shrink:0;border:none;background:none;color:var(--color-text-muted);cursor:pointer}.cat-picker__toggle:disabled{cursor:default}.cat-picker__row{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-sm);min-height:48px;padding:4px var(--space-sm);border:none;border-radius:var(--radius-md);background:none;color:var(--color-text);font:inherit;text-align:left;cursor:pointer}.cat-picker__row:hover{background:var(--color-neutral-100)}.cat-picker__row--selected{background:color-mix(in srgb,var(--color-action-bg) 16%,transparent);color:var(--color-primary-600);font-weight:600}.cat-picker__row--none{color:var(--color-text-muted)}.cat-picker__icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex-shrink:0;border-radius:10px;background:color-mix(in srgb,var(--cat-color) 18%,var(--color-neutral-100));font-size:18px}.cat-picker__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-picker__empty{padding:var(--space-lg);text-align:center;color:var(--color-text-muted)}.cat-picker-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300}.cat-picker-layer__scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080}.cat-picker-sheet{position:absolute;top:12px;left:0;right:0;height:calc(100dvh - 12px);display:flex;flex-direction:column;background:var(--color-bg-card);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-lg);animation:cat-sheet-in .2s cubic-bezier(.2,.8,.2,1)}.cat-picker-sheet__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-sm) 0 var(--space-md);flex-shrink:0}.cat-picker-sheet__title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text)}.cat-picker-sheet__close{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;border-radius:var(--radius-full);background:none;color:var(--color-text-secondary);cursor:pointer}@keyframes cat-sheet-in{0%{transform:translateY(24px);opacity:0}}@media(prefers-reduced-motion:reduce){.cat-picker-sheet{animation:none}}.desc-ac{position:relative}.desc-ac__list{position:absolute;top:100%;left:0;right:0;z-index:20;margin:4px 0 0;padding:4px;list-style:none;max-height:280px;overflow-y:auto;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg, 0 8px 24px rgba(0, 0, 0, .18))}.desc-ac__item{display:flex;align-items:center;gap:var(--space-sm);min-height:48px;padding:6px var(--space-sm);border-radius:var(--radius-sm, 6px);cursor:pointer}.desc-ac__item--active{background:color-mix(in srgb,var(--color-action-bg) 14%,transparent)}.desc-ac__main{flex:1;min-width:0;display:flex;flex-direction:column}.desc-ac__text{color:var(--color-text);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.desc-ac__meta{color:var(--color-text-muted);font-size:var(--font-size-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.desc-ac__amount{flex-shrink:0;font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.desc-ac__amount--expense{color:var(--color-expense-600)}.desc-ac__amount--income{color:var(--color-income-600)}.tx-form__error{padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-md);border-radius:var(--radius-md);background:var(--color-expense-50);color:var(--color-expense-700);font-size:var(--font-size-sm)}.tx-form__templates{margin-bottom:var(--space-md)}.tx-form__fields{display:flex;flex-direction:column;gap:var(--space-md)}.tx-form__types{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:var(--space-md);padding:4px;border-radius:var(--radius-lg);background:var(--color-neutral-100)}.tx-form__type{min-height:44px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:background-color .15s ease,color .15s ease}.tx-form__type--active{background:var(--color-bg-card);color:var(--color-text);box-shadow:0 1px 3px #0000001f}.tx-form__type--expense.tx-form__type--active{color:var(--color-expense-600)}.tx-form__type--income.tx-form__type--active{color:var(--color-income-600)}.tx-form__rate-row{display:flex;align-items:center;gap:var(--space-sm)}.tx-form__rate-unit{flex-shrink:0;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.tx-form__rate-input{flex:1;min-width:0;font-variant-numeric:tabular-nums}.tx-form__rate-hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.tx-form__rate-reset{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;min-height:36px;padding:0;border:none;background:none;color:var(--color-primary-600);font:inherit;font-size:var(--font-size-sm);font-weight:500;cursor:pointer}.tx-form__save-template{margin-top:var(--space-md)}.tx-form__template-trigger{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0;border:none;background:none;color:var(--color-primary-600);font:inherit;font-size:var(--font-size-sm);font-weight:500;cursor:pointer}.tx-form__template-save-row{display:flex;gap:var(--space-sm)}.tx-form__template-save-row input{flex:1;min-width:0}.tx-form__delete{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:44px;margin-top:var(--space-lg);border:1px solid color-mix(in srgb,var(--color-expense-500) 40%,var(--color-border));border-radius:var(--radius-md);background:none;color:var(--color-expense-600);font:inherit;font-weight:500;cursor:pointer}.tx-form__actions{display:flex;gap:var(--space-sm);margin-top:var(--space-lg)}.tx-form__actions>*{flex:1;min-height:48px;white-space:nowrap}.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}.scope-switch{display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;border-radius:var(--radius-lg);background:var(--color-neutral-100)}.scope-switch__option{min-height:36px;padding:0 var(--space-md);border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-sm);font-weight:600;white-space:nowrap;cursor:pointer}.scope-switch__option--active{background:var(--color-bg-card);color:var(--color-text);box-shadow:0 1px 3px #0000001f}.dash{min-height:calc(100vh - var(--header-height, 56px));margin:calc(-1 * var(--space-lg, 1.5rem));padding:2rem 2.5rem;background:var(--ledger-bg);color:var(--ledger-text);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased;--color-bg: var(--ledger-bg);--color-bg-card: var(--ledger-glass)}.dash .modal{--color-bg-card: var(--ledger-surface-high)}.dash{--color-text: var(--ledger-text);--color-text-secondary: var(--ledger-text-variant);--color-text-muted: var(--ledger-text-muted);--color-border: var(--ledger-glass-border);--color-primary-500: var(--ledger-primary);--color-primary-400: var(--ledger-primary);--color-primary-600: var(--ledger-primary-dim)}.dash *{border-color:var(--ledger-outline)}.dash--loading{display:flex;align-items:center;justify-content:center}@media(max-width:768px){.dash{padding:1rem}}.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:var(--ledger-text-strong);letter-spacing:-.02em;margin:0}@media(max-width:768px){.dash__title{font-size:1.25rem}}.dash__subtitle{font-size:.85rem;color:var(--ledger-text-variant);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:var(--ledger-surface-low);border-radius:1.5rem;box-shadow:var(--ledger-glass-shadow);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,color-mix(in srgb,var(--ledger-primary) 50%,transparent),color-mix(in srgb,var(--ledger-primary-dim) 30%,transparent),color-mix(in srgb,var(--ledger-primary) 15%,transparent));-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:var(--ledger-text-variant);position:relative;z-index:1}.dash__hero-value{font-size:2.75rem;font-weight:800;color:var(--ledger-text-strong);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:var(--ledger-text-muted)}.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:var(--ledger-secondary)}.dash__hero-stat-value--expense{color:var(--ledger-tertiary)}.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:var(--ledger-glass);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--ledger-glass-border);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:color-mix(in srgb,var(--ledger-primary) 30%,transparent)}.dash__account-card-icon{font-size:1.5rem;margin-bottom:.25rem}.dash__account-card-name{font-size:.75rem;color:var(--ledger-text-variant);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash__account-card-bal{font-size:1rem;font-weight:700;color:var(--ledger-text-strong)}.dash__account-card-bal--neg{color:var(--ledger-tertiary)}.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:var(--ledger-glass);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--ledger-glass-border);border-radius:1.5rem;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.3rem;box-shadow:var(--ledger-glass-shadow);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:var(--ledger-secondary)}.dash__kpi--balance:after{background:linear-gradient(180deg,color-mix(in srgb,var(--ledger-secondary) 8%,transparent) 0%,transparent 100%)}.dash__kpi--income:before{background:var(--ledger-secondary)}.dash__kpi--income:after{background:linear-gradient(180deg,color-mix(in srgb,var(--ledger-secondary) 6%,transparent) 0%,transparent 100%)}.dash__kpi--expense:before{background:var(--ledger-tertiary)}.dash__kpi--expense:after{background:linear-gradient(180deg,color-mix(in srgb,var(--ledger-tertiary) 6%,transparent) 0%,transparent 100%)}.dash__kpi--savings:before{background:var(--ledger-primary)}.dash__kpi--savings:after{background:linear-gradient(180deg,color-mix(in srgb,var(--ledger-primary) 8%,transparent) 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:var(--ledger-text-variant);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:color-mix(in srgb,var(--ledger-secondary) 10%,transparent);color:var(--ledger-secondary)}.dash__kpi-icon--expense{background:color-mix(in srgb,var(--ledger-tertiary) 10%,transparent);color:var(--ledger-tertiary)}.dash__kpi-icon--savings{background:color-mix(in srgb,var(--ledger-primary) 10%,transparent);color:var(--ledger-primary)}.dash__kpi-value{font-size:1.75rem;font-weight:700;color:var(--ledger-text-strong);letter-spacing:-.02em;position:relative;z-index:1}.dash__kpi-sub{font-size:.75rem;color:var(--ledger-text-muted);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:var(--ledger-secondary)}.dash__change--down{color:var(--ledger-tertiary)}.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:var(--ledger-text-muted)}.dash__glass{background:var(--ledger-glass);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--ledger-glass-border);border-radius:1.5rem;padding:1.25rem 1.5rem;box-shadow:var(--ledger-glass-shadow);border-top-color:color-mix(in srgb,var(--ledger-surface-highest) 30%,transparent);border-left-color:color-mix(in srgb,var(--ledger-surface-highest) 30%,transparent)}.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:var(--ledger-text-strong);margin:0 0 .75rem;letter-spacing:-.01em}.dash__widget-header .dash__widget-title{margin-bottom:0}.dash__link{background:none;border:none;color:var(--ledger-primary);font-size:.8rem;cursor:pointer;padding:0;font-weight:500;font-family:inherit}.dash__link:hover{text-decoration:underline}.dash__empty{color:var(--ledger-text-muted);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:var(--ledger-text-muted)}.dash__cat-center-value{display:block;font-size:1.1rem;font-weight:700;color:var(--ledger-text-strong)}.dash__cat-legend{flex:1;display:flex;flex-direction:column;gap:.6rem;width:100%}@media(max-width:640px){.dash__cat-legend{gap:0}}.dash__cat-legend-row{display:flex;align-items:center;gap:.5rem;min-width:0}@media(max-width:640px){.dash__cat-legend-row{padding:.55rem 0;border-bottom:1px solid var(--ledger-glass-border)}.dash__cat-legend-row:last-child{border-bottom:none}}.dash__cat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dash__cat-name{flex:1;font-size:.85rem;color:var(--ledger-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash__cat-values{flex-shrink:0;display:flex;align-items:baseline;gap:.5rem;text-align:right;white-space:nowrap}.dash__cat-amount{display:block;font-size:.85rem;font-weight:600;color:var(--ledger-text)}.dash__cat-pct{display:block;min-width:2.5em;font-size:.7rem;color:var(--ledger-text-muted)}.dash__glass--insights{border-left:3px solid var(--ledger-primary-dim)}.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:color-mix(in srgb,var(--ledger-tertiary) 12%,transparent);color:var(--ledger-tertiary)}.dash__insight-circle--down{background:color-mix(in srgb,var(--ledger-secondary) 12%,transparent);color:var(--ledger-secondary)}.dash__insight-circle--info{background:color-mix(in srgb,var(--ledger-primary) 12%,transparent);color:var(--ledger-primary)}.dash__insight-circle--neutral{background:color-mix(in srgb,var(--ledger-ink) 6%,transparent);color:var(--ledger-text-variant)}.dash__insight-icon{font-size:1rem;width:1.5rem;text-align:center;flex-shrink:0}.dash__insight-text{font-size:.85rem;color:var(--ledger-text-variant);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:var(--ledger-warning)}.dash__insight-badge--danger{background:color-mix(in srgb,var(--ledger-error) 8%,transparent);border-left-color:var(--ledger-tertiary)}.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:var(--ledger-warning)}.dash__insight-badge--danger .dash__insight-badge-label{color:var(--ledger-tertiary)}.dash__insight-badge-text{font-size:.8rem;font-weight:600;color:var(--ledger-text)}.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:var(--ledger-text)}.dash__budget-pct{font-size:.8rem;font-weight:600;color:var(--ledger-text-variant)}.dash__budget-amounts{font-size:.75rem;color:var(--ledger-text-muted)}.dash__progress{height:6px;background:color-mix(in srgb,var(--ledger-ink) 6%,transparent);border-radius:3px;overflow:hidden}.dash__progress-fill{height:100%;border-radius:3px;transition:width .4s ease}.dash__progress-fill--good{background:var(--ledger-secondary)}.dash__progress-fill--caution{background:var(--ledger-warning)}.dash__progress-fill--warning{background:color-mix(in srgb,var(--ledger-warning) 70%,var(--ledger-tertiary))}.dash__progress-fill--exceeded{background:var(--ledger-tertiary)}.dash__progress-fill--goal{background:var(--ledger-primary)}.dash__tags{display:flex;flex-wrap:wrap;gap:.5rem}.dash__tag-chip{background:color-mix(in srgb,var(--ledger-primary) 8%,transparent);border:1px solid color-mix(in srgb,var(--ledger-primary) 20%,transparent);color:var(--ledger-text);padding:.35rem .85rem;border-radius:999px;cursor:pointer;transition:all .2s;font-family:inherit}.dash__tag-chip:hover{background:color-mix(in srgb,var(--ledger-primary) 18%,transparent);border-color:var(--ledger-primary);box-shadow:0 0 16px color-mix(in srgb,var(--ledger-primary) 15%,transparent)}.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:color-mix(in srgb,var(--ledger-secondary) 10%,transparent);color:var(--ledger-secondary)}.dash__debt-type-icon--borrowed{background:color-mix(in srgb,var(--ledger-blue) 10%,transparent);color:var(--ledger-blue)}.dash__debt-counterparty{display:block;font-size:.85rem;font-weight:600;color:var(--ledger-text)}.dash__debt-due{display:block;font-size:.7rem;color:var(--ledger-text-muted)}.dash__debt-row-amount{font-size:1rem;font-weight:700;color:var(--ledger-text)}.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:var(--ledger-text-muted);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 var(--ledger-outline)}.dash__debt-net-label{font-size:.8rem;color:var(--ledger-text-muted)}.dash__debt-net-value{font-size:.85rem;font-weight:700}.dash__debt-net-value--positive{color:var(--ledger-secondary)}.dash__debt-net-value--negative{color:var(--ledger-tertiary)}.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:color-mix(in srgb,var(--ledger-ink) 3%,transparent);gap:.35rem}.dash__goal-card--add{justify-content:center;cursor:pointer;border:1px dashed var(--ledger-outline);background:transparent;gap:.5rem;transition:border-color .2s}.dash__goal-card--add:hover{border-color:var(--ledger-primary)}.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:var(--ledger-text-muted);border-radius:50%;background:color-mix(in srgb,var(--ledger-ink) 4%,transparent)}.dash__goal-card-name{font-size:.8rem;font-weight:600;color:var(--ledger-text)}.dash__goal-card-amounts{font-size:.7rem;color:var(--ledger-text-muted)}.dash__goal-card-days{font-size:.65rem;font-weight:600;color:var(--ledger-primary);padding:.15rem .5rem;border-radius:999px;background:color-mix(in srgb,var(--ledger-primary) 10%,transparent)}.dash__goal-card-days--overdue{color:var(--ledger-tertiary);background:color-mix(in srgb,var(--ledger-tertiary) 10%,transparent)}.dash__tx-list{display:flex;flex-direction:column}.dash__tx-row{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:52px;padding:.55rem 0;border:none;border-bottom:1px solid color-mix(in srgb,var(--ledger-outline) 10%,transparent);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.dash__tx-row:active{background:color-mix(in srgb,var(--ledger-outline) 8%,transparent)}.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:var(--ledger-surface-high);border-radius:.75rem;flex-shrink:0}.dash__tx-info{display:flex;flex-direction:column;gap:2px;min-width:0}.dash__tx-cat,.dash__tx-date{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash__tx-cat{font-size:.95rem;font-weight:500;line-height:1.3;color:var(--ledger-text)}.dash__tx-date{font-size:.8rem;line-height:1.3;color:var(--ledger-text-muted)}.dash__tx-amount{flex-shrink:0;margin-left:var(--space-sm);font-weight:600;font-size:.95rem;white-space:nowrap}.dash__tx-amount--income{color:var(--ledger-secondary)}.dash__tx-amount--expense{color:var(--ledger-tertiary)}.dash__tx-amount--transfer{color:var(--ledger-primary)}.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:var(--ledger-text);cursor:pointer;font-family:inherit;font-size:.85rem}.dash__group-arrow{font-size:.55rem;color:var(--ledger-text-muted);width:1rem}.dash__group-label{font-weight:600;text-transform:uppercase;font-size:.65rem;letter-spacing:.06em;color:var(--ledger-text-variant)}.dash__group-total{margin-left:auto;font-size:.8rem;color:var(--ledger-text-muted)}.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:color-mix(in srgb,var(--ledger-ink) 4%,transparent)}.dash__account-left{display:flex;align-items:center;gap:.5rem}.dash__account-icon{font-size:1rem}.dash__account-name{font-size:.85rem;color:var(--ledger-text)}.dash__account-bal{font-size:.85rem;font-weight:600;color:var(--ledger-text)}.dash__account-bal--neg{color:var(--ledger-tertiary)}.dash__currency-totals{display:flex;gap:1rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--ledger-outline)}.dash__currency-total{font-size:.8rem;color:var(--ledger-text-muted);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:var(--ledger-text-strong)}.dash__balance-change{font-size:.8rem;font-weight:600}.dash__balance-change--up{color:var(--ledger-secondary)}.dash__balance-change--down{color:var(--ledger-tertiary)}.dash__period-tabs{display:flex;gap:.25rem;background:color-mix(in srgb,var(--ledger-ink) 4%,transparent);border-radius:999px;padding:.2rem}.dash__period-tab{border:none;background:none;font-family:inherit;min-height:32px;padding:.3rem .75rem;font-size:.7rem;font-weight:600;color:var(--ledger-text-muted);border-radius:999px;cursor:pointer;transition:all .15s}.dash__period-tab:hover{color:var(--ledger-text)}.dash__period-tab--active{background:var(--ledger-primary);color:var(--ledger-on-primary)}.dash ::-webkit-scrollbar{width:6px}.dash ::-webkit-scrollbar-track{background:transparent}.dash ::-webkit-scrollbar-thumb{background:var(--ledger-outline);border-radius:10px}.dash ::-webkit-scrollbar-thumb:hover{background:var(--ledger-text-muted)}.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:var(--ledger-secondary);background:color-mix(in srgb,var(--ledger-secondary) 10%,transparent)}.dash__hero-diff--down{color:var(--ledger-tertiary);background:color-mix(in srgb,var(--ledger-tertiary) 10%,transparent)}.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:var(--ledger-tertiary);border-color:color-mix(in srgb,var(--ledger-tertiary) 30%,transparent)}.dash__pill--expense:hover,.dash__pill--expense:active{background:color-mix(in srgb,var(--ledger-tertiary) 10%,transparent)}.dash__pill--income{color:var(--ledger-secondary);border-color:color-mix(in srgb,var(--ledger-secondary) 30%,transparent)}.dash__pill--income:hover,.dash__pill--income:active{background:color-mix(in srgb,var(--ledger-secondary) 10%,transparent)}.dash__pill--transfer{color:var(--ledger-primary);border-color:color-mix(in srgb,var(--ledger-primary) 30%,transparent)}.dash__pill--transfer:hover,.dash__pill--transfer:active{background:color-mix(in srgb,var(--ledger-primary) 10%,transparent)}.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:var(--ledger-warning)}.dash__mob-budget-alerts-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ledger-warning)}.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:var(--ledger-text)}.dash__mob-budget-left{font-size:.8rem;font-weight:600;color:var(--ledger-text-variant)}.dash__mob-debt{display:none}@media(max-width:768px){.dash__mob-debt{display:block;background:var(--ledger-glass);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--ledger-glass-border);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:var(--ledger-text-variant);margin-bottom:.2rem}.dash__mob-debt-value{display:block;font-size:1.5rem;font-weight:700;color:var(--ledger-text-strong)}.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:var(--ledger-tertiary)}.dash__mob-debt-item--lent .dash__mob-debt-item-label{color:var(--ledger-secondary)}.dash__mob-debt-item-value{display:block;font-size:.85rem;font-weight:600}.dash__mob-debt-item--borrowed .dash__mob-debt-item-value{color:var(--ledger-tertiary)}.dash__mob-debt-item--lent .dash__mob-debt-item-value{color:var(--ledger-secondary)}.dash__mob-members{display:none}@media(max-width:768px){.dash__mob-members{display:flex;justify-content:center;gap:1rem;padding:1rem 0}}.dash__mob-member-badge{display:flex;align-items:center;gap:.35rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ledger-text-variant)}.dash__mob-member-dot{width:6px;height:6px;border-radius:50%;background:var(--ledger-secondary)}.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:var(--ledger-surface-high);border-top:1px solid var(--ledger-glass-border);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:var(--ledger-text-muted);font-size:.6rem;font-weight:500;font-family:inherit;cursor:pointer;min-width:52px;transition:color .15s}.dash__bottom-nav-item--active{color:var(--ledger-primary)}.dash__bottom-nav-item:hover{color:var(--ledger-text)}.dash__bottom-nav-item span{white-space:nowrap}.dash__fab{position:fixed;bottom:2rem}@media(max-width:768px){.dash__fab{bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom) + 16px);right:20px}}.dash__fab{right:2rem;width:56px;height:56px;border-radius:50%;background:var(--ledger-primary);border:none;color:var(--ledger-on-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px color-mix(in srgb,var(--ledger-primary) 35%,transparent),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 color-mix(in srgb,var(--ledger-primary) 45%,transparent),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:var(--ledger-surface-high);border:1px solid var(--ledger-glass-border);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:var(--ledger-text-strong);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 var(--ledger-glass-border);border-radius:.75rem;background:color-mix(in srgb,var(--ledger-ink) 3%,transparent);cursor:pointer;transition:all .2s;font-family:inherit}.dash__quick-add-btn:hover{background:color-mix(in srgb,var(--ledger-ink) 6%,transparent);transform:translateY(-2px)}.dash__quick-add-btn--income{color:var(--ledger-secondary)}.dash__quick-add-btn--income:hover{border-color:color-mix(in srgb,var(--ledger-secondary) 30%,transparent)}.dash__quick-add-btn--expense{color:var(--ledger-tertiary)}.dash__quick-add-btn--expense:hover{border-color:color-mix(in srgb,var(--ledger-tertiary) 30%,transparent)}.dash__quick-add-btn--transfer{color:var(--ledger-primary)}.dash__quick-add-btn--transfer:hover{border-color:color-mix(in srgb,var(--ledger-primary) 30%,transparent)}.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:color-mix(in srgb,var(--ledger-secondary) 10%,transparent)}.dash__quick-add-btn--expense .dash__quick-add-icon{background:color-mix(in srgb,var(--ledger-tertiary) 10%,transparent)}.dash__quick-add-btn--transfer .dash__quick-add-icon{background:color-mix(in srgb,var(--ledger-primary) 10%,transparent)}.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__group-more{display:none}.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:stretch;gap:var(--space-sm);margin-bottom:var(--space-md)}.accounts-page__title{font-size:var(--font-size-xl)}.accounts-page__total{display:flex;justify-content:space-between;align-items:baseline;margin-top:var(--space-sm);font-size:var(--font-size-base)}.accounts-page__total-amount{font-size:var(--font-size-lg)}.accounts-page__currency-breakdown{text-align:right}.accounts-page__header-actions{width:100%}.accounts-page__header-actions>*{flex:1;white-space:nowrap;padding-inline:var(--space-sm)}.accounts-page__group{margin:0 calc(-1 * var(--space-lg));margin-left:calc(-1 * var(--space-lg))!important}.accounts-page__group-header{flex-wrap:wrap;gap:var(--space-xs);margin:0;padding:var(--space-xs) var(--space-md) var(--space-xs) var(--space-xs);border-bottom:1px solid var(--color-border);min-height:60px}.accounts-page__collapse-btn{min-width:36px;min-height:44px;padding:0;color:var(--color-text-secondary)}.accounts-page__collapse-btn svg{transition:transform var(--transition-fast)}.accounts-page__collapse-btn--collapsed svg{transform:rotate(-90deg)}.accounts-page__group-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border-radius:var(--radius-full);background:var(--color-neutral-100);font-size:20px}.accounts-page__group-title{min-width:0;margin-left:var(--space-xs);font-size:var(--font-size-base);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.accounts-page__group-total{font-size:var(--font-size-base);font-weight:500;color:var(--color-text);white-space:nowrap}.accounts-page__group-total--negative{color:var(--color-balance-negative)}.accounts-page__group-more{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:44px;background:none;border:none;border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--font-size-lg);cursor:pointer}.accounts-page__group-actions{display:none;width:100%;justify-content:flex-end;margin-left:0}.accounts-page__group-header--menu-open .accounts-page__group-actions{display:flex}.accounts-page__grid{gap:0}}.account-card{background-color:var(--color-bg-card);border:1px solid var(--color-border);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__equiv{margin-top:calc(-1 * var(--space-sm));margin-bottom:var(--space-md);font-size:var(--font-size-xs);color:var(--color-text-muted)}.account-card__actions{display:flex;gap:var(--space-sm);border-top:1px solid var(--color-border);padding-top:var(--space-sm)}.account-card__more{display:none}.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)}@media(max-width:640px){.account-card{display:flex;background:none;border:none;border-bottom:1px solid var(--color-border);border-radius:0;box-shadow:none}.account-card:hover{box-shadow:none}.account-card__color-bar{display:none}.account-card__body{flex:1;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;column-gap:var(--space-sm);min-height:64px;padding:var(--space-xs) var(--space-xs) var(--space-xs) 52px}.account-card__header{min-width:0;margin-bottom:0;align-items:center;gap:var(--space-xs)}.account-card__name-wrap{min-width:0}.account-card__name{display:flex;align-items:center;gap:var(--space-md);font-size:var(--font-size-base);font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-card__type-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin:0;flex-shrink:0;border-radius:12px;background:color-mix(in srgb,var(--acc-color) 18%,var(--color-neutral-100));color:color-mix(in srgb,var(--acc-color) 75%,var(--color-text))}.account-card__type-icon .lucide{width:20px;height:20px;vertical-align:0}.account-card__type,.account-card__currency{display:none}.account-card__amount{text-align:right}.account-card__balance{font-size:var(--font-size-base);font-weight:500;margin:0;white-space:nowrap}.account-card__equiv{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap}.account-card__more{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:44px;background:none;border:none;border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--font-size-lg);cursor:pointer}.account-card__actions{display:none;grid-column:1/-1;justify-content:flex-end;margin-top:var(--space-xs);border-top:none}.account-card--menu-open .account-card__actions{display:flex}.account-card__btn{min-height:44px}}.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}.category-form__business{display:flex;align-items:flex-start;gap:var(--space-sm);margin-top:var(--space-md);cursor:pointer;color:var(--color-text)}.category-form__business input{width:20px;height:20px;margin-top:2px;accent-color:var(--color-action-bg)}.category-form__business small{display:block;color:var(--color-text-muted);font-size:var(--font-size-xs)}.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 color-mix(in srgb,var(--color-action-bg) 25%,transparent)}.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{min-width:260px}.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)}.select-layer--sheet .multi-select__list{flex:1;max-height:none;overscroll-behavior:contain}.select-layer--sheet .multi-select__option{min-height:48px}.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;max-width:100%;overflow-x:auto;scrollbar-width:none}.period-selector__pills::-webkit-scrollbar{display:none}.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;flex-shrink:0;white-space:nowrap;transition:all var(--transition-fast)}.period-selector__pill:hover{color:var(--color-text)}.period-selector__pill--active{background:color-mix(in srgb,var(--color-action-bg) 20%,var(--color-bg-card));color:var(--color-primary-600);font-weight:600;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-action-bg) 45%,transparent)}.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)}.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}.txp{min-height:calc(100vh - var(--header-height, 56px));margin:calc(-1 * var(--space-lg, 1.5rem));padding:2rem 2.5rem;background:var(--ledger-bg);color:var(--ledger-text);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased;--color-bg: var(--ledger-bg);--color-bg-card: var(--ledger-glass);--color-text: var(--ledger-text);--color-text-secondary: var(--ledger-text-variant);--color-text-muted: var(--ledger-text-muted);--color-border: var(--ledger-glass-border);--color-primary-500: var(--ledger-primary);--color-primary-400: var(--ledger-primary);--color-primary-600: var(--ledger-primary-dim)}.txp .modal{--color-bg-card: var(--ledger-surface-high)}.txp *{border-color:var(--ledger-outline)}@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 var(--ledger-outline);border-radius:9999px;padding:.5rem 1rem;font-size:.8rem;font-family:inherit;color:var(--ledger-text-muted);background:transparent;transition:all .2s}.txp .period-selector__pill:hover{color:var(--ledger-text-variant);border-color:color-mix(in srgb,var(--ledger-primary) 30%,transparent);background:color-mix(in srgb,var(--ledger-primary) 5%,transparent)}.txp .period-selector__pill--active{background:color-mix(in srgb,var(--ledger-primary) 12%,transparent);color:var(--ledger-text);border-color:color-mix(in srgb,var(--ledger-primary) 40%,transparent);box-shadow:none}.txp .period-selector__arrow{border-color:var(--ledger-outline);background:transparent;color:var(--ledger-text);border-radius:9999px}.txp .period-selector__arrow:hover{background:color-mix(in srgb,var(--ledger-primary) 8%,transparent);border-color:color-mix(in srgb,var(--ledger-primary) 30%,transparent)}.txp .period-selector__label{color:var(--ledger-text)}.txp .period-selector__today{border-color:var(--ledger-outline);background:transparent;color:var(--ledger-primary);border-radius:9999px}.txp .period-selector__today:hover{background:color-mix(in srgb,var(--ledger-primary) 8%,transparent)}.txp .period-selector__date-input{background:var(--ledger-surface);border-color:var(--ledger-outline);color:var(--ledger-text);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:var(--ledger-text-strong);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:var(--ledger-secondary);border-color:color-mix(in srgb,var(--ledger-secondary) 40%,transparent)}.txp__action-btn--income:hover{background:color-mix(in srgb,var(--ledger-secondary) 10%,transparent);border-color:var(--ledger-secondary)}.txp__action-btn--expense{background:var(--ledger-tertiary);color:var(--ledger-on-primary);border-color:var(--ledger-tertiary)}.txp__action-btn--expense:hover{background:var(--ledger-tertiary)}.txp__action-btn--transfer{display:inline-flex;align-items:center;gap:.35rem;background:transparent;color:var(--ledger-blue);border-color:color-mix(in srgb,var(--ledger-blue) 40%,transparent)}.txp__action-btn--transfer svg{flex-shrink:0}.txp__action-btn--transfer:hover{background:color-mix(in srgb,var(--ledger-blue) 10%,transparent);border-color:var(--ledger-blue)}.txp__breadcrumb{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.8rem}.txp__breadcrumb-link{background:none;border:none;color:var(--ledger-primary);cursor:pointer;font-family:inherit;font-size:.8rem;padding:0}.txp__breadcrumb-link:hover{text-decoration:underline}.txp__breadcrumb-sep{color:var(--ledger-text-muted)}.txp__breadcrumb-current{color:var(--ledger-text);font-weight:500}.txp__hero{display:none}@media(max-width:640px){.txp__hero{display:flex;flex-direction:column;padding:1rem;margin-bottom:1rem;background:var(--ledger-surface-low);border-radius:1.5rem;box-shadow:var(--ledger-glass-shadow);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,color-mix(in srgb,var(--ledger-primary) 50%,transparent),color-mix(in srgb,var(--ledger-primary-dim) 30%,transparent),color-mix(in srgb,var(--ledger-primary) 15%,transparent));-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 color-mix(in srgb,var(--ledger-outline) 30%,transparent)}.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:var(--ledger-text-muted)}.txp__hero-value{font-size:.95rem;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.txp__hero-value--income{color:var(--ledger-secondary)}.txp__hero-value--expense{color:var(--ledger-tertiary)}.txp__hero-count{font-size:.65rem;color:var(--ledger-text-muted);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:var(--ledger-tertiary);border-color:color-mix(in srgb,var(--ledger-tertiary) 35%,transparent)}.txp__quick-btn--income{color:var(--ledger-secondary);border-color:color-mix(in srgb,var(--ledger-secondary) 35%,transparent)}.txp__quick-btn--transfer{color:var(--ledger-blue);border-color:color-mix(in srgb,var(--ledger-blue) 35%,transparent)}.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:var(--ledger-glass);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:.5px solid var(--ledger-glass-border);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:var(--ledger-secondary);box-shadow:0 0 12px color-mix(in srgb,var(--ledger-secondary) 30%,transparent)}.txp__kpi--income .txp__kpi-icon{color:var(--ledger-secondary);background:color-mix(in srgb,var(--ledger-secondary) 10%,transparent)}.txp__kpi--income .txp__kpi-value{color:var(--ledger-secondary)}.txp__kpi--expense:before{background:var(--ledger-tertiary);box-shadow:0 0 12px color-mix(in srgb,var(--ledger-tertiary) 30%,transparent)}.txp__kpi--expense .txp__kpi-icon{color:var(--ledger-tertiary);background:color-mix(in srgb,var(--ledger-tertiary) 10%,transparent)}.txp__kpi--expense .txp__kpi-value{color:var(--ledger-tertiary)}.txp__kpi--balance:before{background:var(--ledger-primary);box-shadow:0 0 12px color-mix(in srgb,var(--ledger-primary) 30%,transparent)}.txp__kpi--balance .txp__kpi-icon{color:var(--ledger-primary);background:color-mix(in srgb,var(--ledger-primary) 10%,transparent)}.txp__kpi--balance .txp__kpi-value{color:var(--ledger-primary)}.txp__kpi--count:before{background:var(--ledger-blue);box-shadow:0 0 12px color-mix(in srgb,var(--ledger-blue) 30%,transparent)}.txp__kpi--count .txp__kpi-icon{color:var(--ledger-blue);background:color-mix(in srgb,var(--ledger-blue) 10%,transparent)}.txp__kpi--count .txp__kpi-value{color:var(--ledger-text-strong)}.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:var(--ledger-text-muted)}.txp__kpi-value{font-size:1.35rem;font-weight:700;font-variant-numeric:tabular-nums;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:var(--ledger-surface-low);border:1px solid var(--ledger-glass-border);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:var(--ledger-text-muted);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:var(--ledger-text-variant);background:color-mix(in srgb,var(--ledger-ink) 3%,transparent)}.txp__view-btn--active{background:var(--ledger-surface-highest);color:var(--ledger-primary);box-shadow:0 2px 6px #0003}.txp__view-btn--active svg{opacity:1;color:var(--ledger-primary)}@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:var(--ledger-surface-high);border-color:var(--ledger-outline);box-shadow:0 8px 32px #00000073}.txp__filters .multi-select__search{background:var(--ledger-surface);color:var(--ledger-text);border-color:var(--ledger-outline)}.txp__filters .multi-select__search::placeholder{color:var(--ledger-text-muted)}.txp__filters .multi-select__option:hover{background:color-mix(in srgb,var(--ledger-ink) 5%,transparent)}.txp__filters .multi-select__trigger{border-radius:9999px;border:1px solid var(--ledger-outline);background:transparent;padding:.5rem 1rem;font-size:.8rem;color:var(--ledger-text-muted);transition:all .2s;min-height:unset;gap:.4rem}.txp__filters .multi-select__trigger:hover{border-color:color-mix(in srgb,var(--ledger-primary) 30%,transparent);background:color-mix(in srgb,var(--ledger-primary) 5%,transparent)}.txp__filters .multi-select__trigger--open{border-color:color-mix(in srgb,var(--ledger-primary) 40%,transparent);background:color-mix(in srgb,var(--ledger-primary) 8%,transparent);color:var(--ledger-text)}@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:var(--ledger-glass);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:.5px solid var(--ledger-glass-border);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:color-mix(in srgb,var(--ledger-error) 10%,transparent);color:var(--ledger-error);border:1px solid color-mix(in srgb,var(--ledger-error) 30%,transparent);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:var(--ledger-text-muted)}.txp__empty p{margin-bottom:1rem}.txp__table-card{background:var(--ledger-glass);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:.5px solid var(--ledger-glass-border);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:var(--ledger-text-muted);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--ledger-outline);white-space:nowrap}.txp-table td{padding:.65rem 1rem;font-size:.8rem;color:var(--ledger-text);border-bottom:1px solid color-mix(in srgb,var(--ledger-outline) 30%,transparent);white-space:nowrap}.txp-table__right{text-align:right}.txp-table__row{transition:background-color .15s}.txp-table__row:hover{background:color-mix(in srgb,var(--ledger-ink) 2%,transparent)}.txp-table__row--clickable{cursor:pointer}.txp-table__row--clickable:hover{background:color-mix(in srgb,var(--ledger-ink) 4%,transparent)}.txp-table__date{color:var(--ledger-text-muted)}.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:var(--ledger-text-muted)}.txp-table__member{font-size:.7rem;color:var(--ledger-text-variant)}.txp-table__tags{display:inline-flex;gap:.25rem;margin-left:.35rem}.txp-table__tag{font-size:.6rem;padding:1px 6px;background:color-mix(in srgb,var(--ledger-primary) 12%,transparent);color:var(--ledger-primary);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-variant-numeric:tabular-nums}.txp-table__amount--expense{color:var(--ledger-tertiary)}.txp-table__amount--income{color:var(--ledger-secondary)}.txp-table__amount--transfer{color:var(--ledger-blue)}.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:var(--ledger-text-muted);opacity:0;transition:all .15s}.txp-table__row:hover .txp-table__btn{opacity:1}.txp-table__btn:hover{background:color-mix(in srgb,var(--ledger-ink) 5%,transparent);color:var(--ledger-text)}.txp-table__btn--danger:hover{background:color-mix(in srgb,var(--ledger-error) 10%,transparent);color:var(--ledger-error)}.txp__converted{font-weight:400;font-size:.7rem;color:var(--ledger-text-muted);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:color-mix(in srgb,var(--ledger-tertiary) 12%,transparent);color:var(--ledger-tertiary)}.txp-badge--income{background:color-mix(in srgb,var(--ledger-secondary) 12%,transparent);color:var(--ledger-secondary)}.txp-badge--transfer{background:color-mix(in srgb,var(--ledger-blue) 12%,transparent);color:var(--ledger-blue)}.txp-groups{display:flex;flex-direction:column;gap:.75rem}.txp-group{background:var(--ledger-glass);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:.5px solid var(--ledger-glass-border);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:var(--ledger-text);transition:background .15s}.txp-group__header:hover{background:color-mix(in srgb,var(--ledger-ink) 2%,transparent)}@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:var(--ledger-text-muted);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:var(--ledger-text)}.txp-group__count{font-size:.65rem;color:var(--ledger-text-muted);background:color-mix(in srgb,var(--ledger-outline) 40%,transparent);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-variant-numeric:tabular-nums}.txp-group__total--income{color:var(--ledger-secondary)}.txp-group__total--expense{color:var(--ledger-tertiary)}.txp-group__body{border-top:1px solid color-mix(in srgb,var(--ledger-outline) 30%,transparent);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 var(--ledger-outline);border-radius:9999px;background:transparent;color:var(--ledger-text-variant);font-size:.75rem;font-family:inherit;font-weight:500;cursor:pointer;transition:all .2s}.txp__page-btn:hover:not(:disabled){background:color-mix(in srgb,var(--ledger-primary) 10%,transparent);border-color:var(--ledger-primary);color:var(--ledger-primary)}.txp__page-btn:disabled{opacity:.3;cursor:not-allowed}.txp__page-info{font-size:.75rem;color:var(--ledger-text-muted)}.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:var(--ledger-text-variant);text-transform:uppercase;letter-spacing:.05em}.txp-mobile__day-total{font-size:.7rem;font-weight:600;font-variant-numeric:tabular-nums}.txp-mobile__day-total--pos{color:var(--ledger-secondary)}.txp-mobile__day-total--neg{color:var(--ledger-tertiary)}.txp-mobile__card{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--ledger-glass);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:.5px solid var(--ledger-glass-border);border-radius:.75rem;margin-bottom:.35rem;cursor:pointer;transition:background .15s;min-height:56px}.txp-mobile__card:active{background:color-mix(in srgb,var(--ledger-ink) 3%,transparent)}.txp-mobile__icon{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:.75rem;background:var(--ledger-surface);font-size:1.1rem}.txp-mobile__info{flex:1;min-width:0}.txp-mobile__title{font-size:.85rem;font-weight:500;color:var(--ledger-text);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:var(--ledger-text-muted)}.txp-mobile__cat:after{content:"·";margin-left:.35rem}.txp-mobile__account{color:var(--ledger-text-variant)}.txp-mobile__user:before{content:"·";margin-right:.35rem;color:var(--ledger-text-muted)}.txp-mobile__amount{flex-shrink:0;text-align:right;font-weight:600;font-variant-numeric:tabular-nums;font-size:.85rem}.txp-mobile__amount--expense{color:var(--ledger-tertiary)}.txp-mobile__amount--income{color:var(--ledger-secondary)}.txp-mobile__amount--transfer{color:var(--ledger-blue)}.txp-mobile__conv{font-weight:400;font-size:.6rem;color:var(--ledger-text-muted)}.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:var(--ledger-text);margin:0}.txp__cashflow-title svg{color:var(--ledger-primary)}@media(max-width:640px){.txp__cashflow-title{font-size:.75rem}}.txp__cashflow-legend{display:flex;align-items:center;gap:.35rem;font-size:.7rem;color:var(--ledger-text-muted)}.txp__cashflow-dot{display:inline-block;width:8px;height:8px;border-radius:9999px;background:var(--ledger-primary)}.txp__cashflow-body{position:relative}.txp__cashflow-summary{display:flex;align-items:flex-end;justify-content:space-between;gap:.5rem;padding:0 4px .5rem}.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:.65rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ledger-text-muted)}.txp__cashflow-marker-value{font-size:.95rem;font-weight:700;color:var(--ledger-text);white-space:nowrap}.txp__cashflow-delta{align-self:center;padding:2px 10px;border-radius:999px;font-size:.75rem;font-weight:600;white-space:nowrap}.txp__cashflow-delta--pos{color:var(--ledger-secondary);background:color-mix(in srgb,var(--ledger-secondary) 14%,transparent)}.txp__cashflow-delta--neg{color:var(--ledger-tertiary);background:color-mix(in srgb,var(--ledger-tertiary) 14%,transparent)}.txp__fab{display:none}@media(max-width:640px){.txp__fab{display:flex;align-items:center;justify-content:center;position:fixed;bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom) + 16px);right:20px;width:56px;height:56px;border-radius:9999px;border:none;background:var(--ledger-primary);color:var(--ledger-on-primary);font-size:28px;font-weight:300;box-shadow:0 4px 20px color-mix(in srgb,var(--ledger-primary) 40%,transparent);cursor:pointer;z-index:100;transition:transform .15s,box-shadow .15s}.txp__fab:active{transform:scale(.92);box-shadow:0 2px 12px color-mix(in srgb,var(--ledger-primary) 30%,transparent)}}.txp__confirm-text{margin-bottom:1.25rem;color:var(--ledger-text)}.txp__confirm-warning{color:var(--ledger-error);font-weight:500}.txp__confirm-actions{display:flex;gap:.5rem;justify-content:flex-end}.txp .tx-form__error{background:color-mix(in srgb,var(--ledger-error) 10%,transparent);color:var(--ledger-error);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;flex-wrap:wrap;gap:var(--space-sm);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-action-bg);color:var(--color-on-action);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;flex-wrap:wrap;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}}.family-reset{margin-top:var(--space-xl);padding:var(--space-md);border:1px solid color-mix(in srgb,var(--color-expense-500) 45%,var(--color-border));border-radius:var(--radius-lg);background:var(--color-bg-card)}.family-reset__title{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xs);color:var(--color-expense-600);font-size:var(--font-size-lg);font-weight:600}.family-reset__hint{margin-bottom:var(--space-md);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.family-reset__body{display:flex;flex-direction:column;gap:var(--space-md);color:var(--color-text)}.family-reset__list{margin:0;padding-left:1.25rem;list-style:disc;color:var(--color-text-secondary)}.family-reset__keep{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.family-reset__check{display:flex;align-items:flex-start;gap:var(--space-sm);min-height:44px;cursor:pointer}.family-reset__check input{width:20px;height:20px;margin-top:2px;accent-color:var(--color-action-bg)}.family-reset__check--nested{margin-left:var(--space-lg)}.family-reset__error{color:var(--color-expense-600);font-size:var(--font-size-sm)}.family-reset__actions{display:flex;gap:var(--space-sm)}.family-reset__actions>*{flex:1;min-height:48px}.assistant-connections{margin-top:var(--space-xl);padding:var(--space-md);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.assistant-connections__title{margin-bottom:var(--space-sm);font-size:var(--font-size-lg);font-weight:600;color:var(--color-text)}.assistant-connections__empty{color:var(--color-text-muted);font-size:var(--font-size-sm)}.assistant-connections__row{display:flex;align-items:center;gap:var(--space-sm);min-height:56px;border-top:1px solid var(--color-border)}.assistant-connections__icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:color-mix(in srgb,var(--color-action-bg) 18%,var(--color-neutral-100));color:var(--color-primary-600)}.assistant-connections__info{flex:1;min-width:0;display:flex;flex-direction:column}.assistant-connections__name{color:var(--color-text);font-weight:500}.assistant-connections__meta{font-size:var(--font-size-xs);color:var(--color-text-muted)}.assistant-connections__disconnect{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 var(--space-sm);border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);background:none;color:var(--color-expense-600);font:inherit;font-size:var(--font-size-sm);cursor:pointer}.profile-settings{margin-top:var(--space-xl);padding:var(--space-md);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.profile-settings__title,.profile-settings__subtitle{display:flex;align-items:center;gap:var(--space-sm);color:var(--color-text);font-weight:600}.profile-settings__title svg,.profile-settings__subtitle svg{color:var(--color-text-muted)}.profile-settings__title{margin-bottom:var(--space-md);font-size:var(--font-size-lg)}.profile-settings__subtitle{margin:var(--space-lg) 0 var(--space-md);padding-top:var(--space-lg);border-top:1px solid var(--color-border);font-size:var(--font-size-base)}.profile-settings__form{display:flex;flex-direction:column;gap:var(--space-md);max-width:420px}.profile-settings__actions{display:flex;justify-content:flex-start}.profile-settings__status{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.profile-settings__status--ok{background:var(--color-income-50);color:var(--color-income-700)}.profile-settings__status--error{background:var(--color-expense-50);color:var(--color-expense-700)}.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-variant-numeric:tabular-nums}.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-variant-numeric:tabular-nums;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-variant-numeric:tabular-nums}.reports__expense{color:var(--color-expense-600);font-weight:600;font-variant-numeric:tabular-nums}.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-variant-numeric:tabular-nums;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-variant-numeric:tabular-nums;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-variant-numeric:tabular-nums}.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-variant-numeric:tabular-nums}@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:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.debts-page__card-row--clickable{cursor:pointer;-webkit-tap-highlight-color:transparent}.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-sm);min-width:0}.debts-page__counterparty{min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;font-size:var(--font-size-base);font-weight:600}.debts-page__card-meta{margin-top:2px;color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:1.4}.debts-page__card-money{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px var(--space-sm);margin-bottom:var(--space-sm)}.debts-page__remaining{font-size:var(--font-size-xl);font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}.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-sm);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.debts-page__star{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;margin:-6px -8px 0 0;border:none;border-radius:50%;background:none;color:var(--color-text-muted);cursor:pointer}.debts-page__star--active{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-action-bg);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__payments-list{margin:0;padding:0;list-style:none}.debts-page__payment{display:flex;align-items:center;gap:var(--space-xs);min-height:52px;border-bottom:1px solid var(--color-border)}.debts-page__payment:last-child{border-bottom:none}.debts-page__payment-main{flex:1;min-width:0;display:flex;flex-direction:column}.debts-page__payment-amount{font-weight:600;font-variant-numeric:tabular-nums}.debts-page__payment-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-muted);font-size:var(--font-size-xs)}.debts-page__icon-action{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;border-radius:var(--radius-md);background:none;color:var(--color-text-secondary);cursor:pointer}.debts-page__icon-action:active{background:var(--color-bg-tertiary)}.debts-page__icon-action--danger{color:var(--color-danger-600)}.debts-page__payment-tag{margin-left:6px;vertical-align:2px;font-size:10px;font-weight:500;padding:1px 4px;border-radius:3px;background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.debts-page__notes{margin:0 0 var(--space-md);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.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:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-sm)}.debts-page__card-actions .btn{min-height:44px}.debts-page__card-actions .btn>span{display:inline-flex;align-items:center;justify-content:center;gap:6px}.debts-page__card-actions .btn:last-child{color:var(--color-danger-600)}.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__detail-grid{grid-template-columns:1fr 1fr}}.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;min-height:44px;background:transparent;border:none;color:var(--color-text-secondary);font:inherit;cursor:pointer;font-weight:500;font-size:var(--font-size-sm);transition:background .2s,color .2s}.debt-form__tab:hover{background:var(--color-neutral-100)}.debt-form__tab--active{font-weight:600}.debt-form__tab--borrow{background:color-mix(in srgb,var(--color-expense-500) 18%,var(--color-bg-card));color:var(--color-expense-600)}.debt-form__tab--lend{background:color-mix(in srgb,var(--color-income-500) 18%,var(--color-bg-card));color:var(--color-income-600)}.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)}.debts-page__detail-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.debts-page__detail-head .debts-page__detail-subtitle{margin:0}.debts-page__text-action{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 var(--space-sm);border:none;border-radius:var(--radius-md);background:none;color:var(--color-primary-600);font:inherit;font-size:var(--font-size-sm);font-weight:500;cursor:pointer}.debts-page__text-action:active{background:var(--color-bg-tertiary)}.debts-page__show-all{justify-content:center;width:100%}.debts-page__payments-empty{margin:0;color:var(--color-text-muted);font-size:var(--font-size-sm)}.payment-form__historical{display:flex;align-items:center;gap:var(--space-sm);min-height:44px;margin-bottom:var(--space-sm);font-size:var(--font-size-sm);cursor:pointer}.payment-form__historical input{width:20px;height:20px;accent-color:var(--color-primary-600)}.payment-form__hint{margin:0 0 var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--color-bg-tertiary);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.history-import__hint{margin:0 0 var(--space-md);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.history-import__text{min-height:150px;padding:var(--space-sm);font-family:var(--font-mono);font-size:16px;line-height:1.5;white-space:pre;resize:vertical}.history-import__summary{margin:var(--space-md) 0 var(--space-sm);font-size:var(--font-size-sm);font-weight:600}.history-import__table-wrap{max-height:40vh;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.history-import__table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.history-import__table th,.history-import__table td{padding:6px var(--space-sm);border-bottom:1px solid var(--color-border);text-align:right;vertical-align:top}.history-import__table th:first-child,.history-import__table td:first-child{text-align:left}.history-import__table th{position:sticky;top:0;background:var(--color-bg-card);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:600}.history-import__table tr:last-child td{border-bottom:none}.history-import__note{display:block;color:var(--color-text-muted);font-size:var(--font-size-xs)}.history-import__negative{color:var(--color-danger-600)}.history-import__errors{margin-top:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--color-warning-50);color:var(--color-text);font-size:var(--font-size-xs)}.history-import__errors p{margin:0 0 4px;font-weight:600}.history-import__errors ul{margin:0;padding-left:1.2em}.history-import__errors li{overflow-wrap:anywhere}.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:4px;margin-bottom:var(--space-lg);padding:4px;border-radius:var(--radius-full);background:var(--color-neutral-100);overflow-x:auto;scrollbar-width:none}.goals__tabs::-webkit-scrollbar{display:none}.goals__tab{flex:1 0 auto;min-height:36px;padding:0 var(--space-md);border:none;border-radius:var(--radius-full);background:transparent;color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-sm);font-weight:500;white-space:nowrap;cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.goals__tab--active{background:color-mix(in srgb,var(--color-action-bg) 20%,var(--color-bg-card));color:var(--color-primary-600);font-weight:600;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-action-bg) 45%,transparent)}.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{position:relative;display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.goals__card--reached .goals__progress-fill,.goals__card--cancelled .goals__progress-fill{opacity:.6}.goals__card-header{display:flex;align-items:center;gap:var(--space-sm)}.goals__card-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;border-radius:14px;background:color-mix(in srgb,var(--goal-color) 18%,var(--color-neutral-100));font-size:22px}.goals__card-info{flex:1;min-width:0;display:flex;flex-direction:column}.goals__card-name,.goals__card-desc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.goals__card-name{font-size:var(--font-size-base);font-weight:600;color:var(--color-text)}.goals__card-desc{font-size:var(--font-size-sm);color:var(--color-text-muted)}.goals__card-badge{flex-shrink:0;padding:2px 10px;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:500;background:var(--color-neutral-100);color:var(--color-text-secondary)}.goals__card-badge--reached{background:color-mix(in srgb,var(--color-income-500) 16%,transparent);color:var(--color-income-600)}.goals__menu-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;margin-right:-8px;border:none;border-radius:var(--radius-full);background:none;color:var(--color-text-muted);cursor:pointer}.goals__menu-btn:hover{background:var(--color-neutral-100);color:var(--color-text)}.goals__menu{position:absolute;top:56px;right:var(--space-sm);z-index:20;min-width:200px;padding:4px;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.goals__menu button{display:flex;align-items:center;gap:var(--space-sm);width:100%;min-height:44px;padding:0 var(--space-sm);border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text);font:inherit;font-size:var(--font-size-sm);text-align:left;cursor:pointer}.goals__menu button:hover{background:var(--color-neutral-100)}.goals__menu .goals__menu-danger{margin-top:4px;border-top:1px solid var(--color-border);border-radius:0 0 var(--radius-sm) var(--radius-sm);color:var(--color-expense-600)}.goals__amounts{display:flex;align-items:baseline;gap:6px;margin-top:var(--space-xs)}.goals__current{font-size:var(--font-size-xl);font-weight:700;color:var(--color-text)}.goals__target{flex:1;font-size:var(--font-size-sm);color:var(--color-text-muted)}.goals__pct{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary)}.goals__progress-bar{height:8px;border-radius:var(--radius-full);background:var(--color-neutral-100);overflow:hidden}.goals__progress-fill{height:100%;border-radius:var(--radius-full);background:var(--goal-color);transition:width .3s ease}.goals__chips{display:flex;flex-wrap:wrap;gap:6px}.goals__chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--radius-full);background:var(--color-neutral-100);color:var(--color-text-secondary);font-size:var(--font-size-xs)}.goals__chip--overdue{background:color-mix(in srgb,var(--color-expense-500) 14%,transparent);color:var(--color-expense-600)}.goals__primary-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm);margin-top:var(--space-xs)}.goals__primary-actions>*{min-height:44px}.goals__history-toggle{display:flex;align-items:center;gap:var(--space-xs);min-height:40px;padding:0;border:none;border-top:1px solid var(--color-border);background:none;color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-sm);cursor:pointer}.goals__history-count{padding:0 6px;border-radius:var(--radius-full);background:var(--color-neutral-100);font-size:var(--font-size-xs)}.goals__history-chevron{margin-left:auto;transition:transform var(--transition-fast)}.goals__history-chevron--open{transform:rotate(180deg)}.goals__detail-empty{padding:var(--space-sm) 0;font-size:var(--font-size-sm);color:var(--color-text-muted)}.goals__tx-list{list-style:none;margin:0;padding:0}.goals__tx-row{display:flex;align-items:center;gap:var(--space-sm);min-height:52px;border-bottom:1px solid var(--color-border)}.goals__tx-row:last-child{border-bottom:none}.goals__tx-main{flex:1;min-width:0;display:flex;flex-direction:column}.goals__tx-title,.goals__tx-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.goals__tx-title{font-size:var(--font-size-sm);color:var(--color-text)}.goals__tx-meta{font-size:var(--font-size-xs);color:var(--color-text-muted)}.goals__tx-amount{font-size:var(--font-size-sm);font-weight:600;white-space:nowrap}.goals__tx-amount--deposit{color:var(--color-income-600)}.goals__tx-amount--withdraw{color:var(--color-expense-600)}.goals__tx-actions{display:flex}.goals__icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:var(--radius-full);background:none;color:var(--color-text-muted);cursor:pointer}.goals__icon-btn:hover{background:var(--color-neutral-100);color:var(--color-text)}.goals__icon-btn--danger:hover{color:var(--color-expense-600)}.goals__confirm-text{margin-bottom:var(--space-lg);color:var(--color-text)}.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)}.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)}}.oauth-consent{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-md);background:var(--color-bg)}.oauth-consent__card{width:100%;max-width:420px;display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-xl) var(--space-lg);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}.oauth-consent__icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:16px;background:var(--color-action-bg);color:var(--color-on-action)}.oauth-consent__title{font-size:var(--font-size-xl);font-weight:700;color:var(--color-text)}.oauth-consent__lead,.oauth-consent__list{color:var(--color-text-secondary)}.oauth-consent__list{margin:0;padding-left:1.2em;display:flex;flex-direction:column;gap:6px}.oauth-consent__note{display:flex;align-items:center;gap:6px;font-size:var(--font-size-sm);color:var(--color-text-muted)}.oauth-consent__host{font-size:var(--font-size-xs);color:var(--color-text-muted)}.oauth-consent__error{color:var(--color-expense-600)}.oauth-consent__actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.oauth-consent__actions>*{min-height:48px}*,*: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%}html,body{overflow-x:clip}body{min-height:100vh;min-height:100dvh;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}*{-webkit-tap-highlight-color:transparent}:focus:not(:focus-visible){outline:none}button,[role=button],a{touch-action:manipulation}:root{color-scheme:light}[data-theme=dark]{color-scheme:dark}@media(pointer:coarse){*{scrollbar-width:none}*::-webkit-scrollbar{display:none}}:root{--color-primary-50: #fff7ed;--color-primary-100: #ffedd5;--color-primary-200: #fed7aa;--color-primary-300: #fdba74;--color-primary-400: #fb923c;--color-primary-500: #f29d38;--color-primary-600: #c2410c;--color-primary-700: #9a3412;--color-primary-800: #1e40af;--color-primary-900: #1e3a8a;--color-income-50: #eef6f1;--color-income-100: #d9ece1;--color-income-300: #9fcdb1;--color-income-500: #3f8f63;--color-income-600: #2f7550;--color-income-700: #255e40;--color-expense-50: #fbf0ee;--color-expense-100: #f6ddd9;--color-expense-300: #e7a39c;--color-expense-500: #d05a4f;--color-expense-600: #b4473d;--color-expense-700: #933a32;--color-warning-50: #fffbeb;--color-warning-100: #fef3c7;--color-warning-500: #f59e0b;--color-warning-600: #d97706;--color-neutral-50: #fafafa;--color-neutral-100: #f4f4f5;--color-neutral-200: #e4e4e7;--color-neutral-300: #d4d4d8;--color-neutral-400: #a1a1aa;--color-neutral-500: #71717a;--color-neutral-600: #52525b;--color-neutral-700: #3f3f46;--color-neutral-800: #27272a;--color-neutral-900: #18181b;--color-bg: #f4f4f5;--color-bg-card: #ffffff;--color-bg-sidebar: #ffffff;--color-bg-input: #f4f4f5;--color-bg-tertiary: var(--color-neutral-50);--color-text: var(--color-neutral-900);--color-text-secondary: var(--color-neutral-500);--color-text-muted: #6b6b73;--color-text-inverse: #ffffff;--color-border: var(--color-neutral-300);--color-border-focus: var(--color-primary-500);--color-action-bg: #f29d38;--color-action-bg-hover: #e8892a;--color-on-action: #1a1a1a;--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-text);--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;--bottom-nav-height: 64px;--sidebar-collapsed-width: 64px;--header-height: 56px}[data-theme=dark]{--color-bg: #121212;--color-bg-card: #1e1e1e;--color-bg-sidebar: #171717;--color-bg-input: #262626;--color-bg-tertiary: #242424;--color-text: #ededed;--color-text-secondary: #b3b3b3;--color-text-muted: #9e9e9e;--color-text-inverse: #121212;--color-border: #3d3d3d;--color-border-focus: var(--color-primary-400);--color-action-bg: #f29d38;--color-action-bg-hover: #f5ad5b;--color-on-action: #1a1a1a;--color-neutral-50: #1a1a1a;--color-neutral-100: #2b2b2b;--color-neutral-200: #353535;--color-neutral-300: #424242;--color-neutral-400: #6b6b6b;--color-neutral-500: #8a8a8a;--color-neutral-600: #b3b3b3;--color-neutral-700: #3f3f3f;--color-neutral-800: #1e1e1e;--color-neutral-900: #121212;--color-primary-50: #2a1d0e;--color-primary-100: #3a2812;--color-primary-200: #5c3d17;--color-primary-300: #c9822f;--color-primary-400: #f5ad5b;--color-primary-500: #f29d38;--color-primary-600: #f5ad5b;--color-primary-700: #f8c58a;--color-income-50: #0f2219;--color-income-100: #143022;--color-income-300: #8fc7a6;--color-income-500: #5fa37e;--color-income-600: #7bb896;--color-income-700: #a6d1b8;--color-expense-50: #2a1413;--color-expense-100: #3a1a18;--color-expense-300: #e89d95;--color-expense-500: #d9695f;--color-expense-600: #e3857c;--color-expense-700: #efb1aa;--color-warning-50: #1c1506;--color-warning-100: #2d220a;--color-warning-500: #f59e0b;--color-warning-600: #fbbf24;--color-balance-positive: var(--color-text);--color-balance-negative: var(--color-expense-600);--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)}:root{--ledger-bg: #f4f4f5;--ledger-surface-low: #fafafa;--ledger-surface: #ffffff;--ledger-surface-high: #ffffff;--ledger-surface-highest: #e4e4e7;--ledger-glass: rgba(255, 255, 255, .9);--ledger-glass-border: rgba(0, 0, 0, .08);--ledger-glass-shadow: 0 8px 24px rgba(15, 23, 42, .08);--ledger-primary: #c2410c;--ledger-primary-dim: #9a3412;--ledger-on-primary: #ffffff;--ledger-secondary: #2f7550;--ledger-tertiary: #b4473d;--ledger-blue: #2563eb;--ledger-error: #b4473d;--ledger-warning: #b45309;--ledger-text: #18181b;--ledger-text-strong: #18181b;--ledger-text-variant: #52525b;--ledger-text-muted: #6b6b73;--ledger-outline: #d4d4d8;--ledger-ink: #18181b}[data-theme=dark]{--ledger-bg: #121212;--ledger-surface-low: #171717;--ledger-surface: #1e1e1e;--ledger-surface-high: #242424;--ledger-surface-highest: #2e2e2e;--ledger-glass: rgba(30, 30, 30, .85);--ledger-glass-border: rgba(255, 255, 255, .08);--ledger-glass-shadow: 0 12px 32px rgba(0, 0, 0, .35);--ledger-primary: #f29d38;--ledger-primary-dim: #e8892a;--ledger-on-primary: #1a1a1a;--ledger-secondary: #7bb896;--ledger-tertiary: #e3857c;--ledger-blue: #6ea8fe;--ledger-error: #e3857c;--ledger-warning: #f59e0b;--ledger-text: #ededed;--ledger-text-strong: #ffffff;--ledger-text-variant: #b3b3b3;--ledger-text-muted: #9e9e9e;--ledger-outline: #3a3a3a;--ledger-ink: #ffffff}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-variant-numeric:tabular-nums;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}.lucide{display:inline-block;flex-shrink:0;vertical-align:-.2em}
