.toast-container{z-index:9999;pointer-events:none;flex-direction:column;gap:.625rem;width:calc(100vw - 3rem);max-width:380px;display:flex;position:fixed;bottom:1.5rem;right:1.5rem}.toast{background:var(--surface);border:1px solid var(--border);pointer-events:all;border-radius:10px;align-items:center;gap:.75rem;padding:.875rem 1rem;animation:.28s cubic-bezier(.4,0,.2,1) both toast-enter;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 32px #00000040,0 2px 8px #0000001f}@keyframes toast-enter{0%{opacity:0;transform:translate(100%)scale(.96)}to{opacity:1;transform:translate(0)scale(1)}}.toast--success{border-left:3px solid var(--income)}.toast--error{border-left:3px solid var(--expense)}.toast--warning{border-left:3px solid #f59e0b}.toast--info{border-left:3px solid var(--accent)}.toast__icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;font-size:.75rem;font-weight:800;line-height:1;display:flex}.toast--success .toast__icon{background:var(--income-bg);color:var(--income)}.toast--error .toast__icon{background:var(--expense-bg);color:var(--expense)}.toast--warning .toast__icon{color:#f59e0b;background:#f59e0b1f}.toast--info .toast__icon{background:var(--accent-bg);color:var(--accent)}.toast__message{color:var(--text-h);flex:1;min-width:0;font-size:.875rem;font-weight:500;line-height:1.4}.toast__close{width:1.625rem;height:1.625rem;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.125rem;line-height:1;transition:background .15s,color .15s;display:flex}.toast__close:hover{background:var(--surface-elevated);color:var(--text-h)}.toast__progress{transform-origin:0;width:100%;height:2px;animation:linear forwards toast-progress;position:absolute;bottom:0;left:0}.toast--success .toast__progress{background:var(--income)}.toast--error .toast__progress{background:var(--expense)}.toast--warning .toast__progress{background:#f59e0b}.toast--info .toast__progress{background:var(--accent)}@keyframes toast-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media (width<=640px){.toast-container{width:auto;max-width:100%;bottom:1rem;left:1rem;right:1rem}.toast{animation-name:toast-enter-mobile}@keyframes toast-enter-mobile{0%{opacity:0;transform:translateY(20px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}}.modal{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#08060d73;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal__dialog{background:var(--surface);border:1px solid var(--border);width:100%;max-width:440px;box-shadow:var(--shadow-md);border-radius:12px;animation:.2s ease-out modal-enter}@keyframes modal-enter{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal__header{justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.5rem 0;display:flex}.modal__title{color:var(--text-h);margin:0;font-size:1.125rem;font-weight:600}.modal__close{width:2rem;height:2rem;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1.5rem;line-height:1;transition:background .15s,color .15s;display:flex}.modal__close:hover{background:var(--surface-elevated);color:var(--text-h)}.modal__body{padding:1.25rem 1.5rem 1.5rem}@media (width<=520px){.modal{align-items:flex-end;padding:0}.modal__dialog{border-bottom:none;border-radius:20px 20px 0 0;max-width:100%;animation:.28s cubic-bezier(.4,0,.2,1) modal-slide-up}@keyframes modal-slide-up{0%{opacity:0;transform:translateY(60px)}to{opacity:1;transform:translateY(0)}}.modal__body{padding-bottom:max(1.5rem, env(safe-area-inset-bottom,1.5rem));max-height:85dvh;overflow-y:auto}.modal__dialog:before{content:"";background:var(--border);border-radius:2px;width:36px;height:4px;margin:.75rem auto 0;display:block}}.btn{cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.125rem;font-family:inherit;font-size:.9375rem;font-weight:500;line-height:1.25;transition:background .15s,border-color .15s,opacity .15s,transform .1s,filter .15s;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn:active:not(:disabled){transform:scale(.97)}.btn--primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn--primary:hover:not(:disabled){filter:brightness(1.08)}.btn--secondary{background:var(--surface);color:var(--text-h);border-color:var(--border)}.btn--secondary:hover:not(:disabled){background:var(--surface-elevated);border-color:var(--accent-border)}.btn--ghost{color:var(--text);background:0 0;border-color:#0000}.btn--ghost:hover:not(:disabled){background:var(--surface-elevated);color:var(--text-h)}.btn--danger{background:var(--expense);color:#fff;border-color:var(--expense)}.btn--danger:hover:not(:disabled){filter:brightness(1.08)}.pro-badge{letter-spacing:.06em;color:var(--accent);background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;padding:.1rem .4rem;font-size:.625rem;font-weight:700;line-height:1.4;display:inline-flex}.upgrade-modal{flex-direction:column;gap:1rem;display:flex}.upgrade-modal__hero{align-items:center;gap:.75rem;display:flex}.upgrade-modal__icon{background:var(--accent-bg);border:1px solid var(--accent-border);width:2.5rem;height:2.5rem;color:var(--accent);border-radius:10px;justify-content:center;align-items:center;display:flex}.upgrade-modal__desc{color:var(--text-muted);margin:0;font-size:.9375rem;line-height:1.55}.upgrade-modal__feature-hint{color:var(--text-h);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:10px;margin:0;padding:.75rem 1rem;font-size:.875rem}.upgrade-modal__benefits{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.upgrade-modal__benefit{color:var(--text-h);align-items:center;gap:.5rem;font-size:.875rem;display:flex}.upgrade-modal__benefit svg{color:var(--income);flex-shrink:0}.upgrade-modal__preview{background:var(--surface-raised);border:1px solid var(--border-subtle);color:var(--text-muted);border-radius:10px;padding:.875rem 1rem;font-size:.875rem}.upgrade-modal__preview p{margin:0 0 .35rem}.upgrade-modal__preview p:last-child{margin-bottom:0}.upgrade-modal__price{font-weight:700;color:var(--text-h)!important;font-size:1.125rem!important}.upgrade-modal__price span{color:var(--text-muted);font-size:.8125rem;font-weight:500}.upgrade-modal__preview-msg{font-size:.8125rem!important}.upgrade-modal__preview-loading{color:var(--text-muted);margin:0;font-size:.8125rem}.upgrade-modal__actions{flex-direction:column;gap:.625rem;margin-top:.25rem;display:flex}.logo{align-items:center;gap:var(--logo-gap,.625rem);-webkit-user-select:none;user-select:none;flex-shrink:0;text-decoration:none;display:inline-flex}.logo--sm{--logo-mark-size:28px;--logo-mark-radius:8px;--logo-mark-font:.875rem;--logo-name-font:1rem;--logo-gap:.5rem}.logo--md{--logo-mark-size:36px;--logo-mark-radius:10px;--logo-mark-font:1.125rem;--logo-name-font:1.25rem;--logo-gap:.625rem}.logo--lg{--logo-mark-size:44px;--logo-mark-radius:12px;--logo-mark-font:1.375rem;--logo-name-font:1.5rem;--logo-gap:.75rem}.logo--xl{--logo-mark-size:56px;--logo-mark-radius:14px;--logo-mark-font:1.75rem;--logo-name-font:1.875rem;--logo-gap:.875rem}.logo__mark{width:var(--logo-mark-size);height:var(--logo-mark-size);border-radius:var(--logo-mark-radius);color:#fff;font-size:var(--logo-mark-font);font-weight:800;font-family:var(--heading);letter-spacing:-.02em;background:linear-gradient(135deg,#7c3aed 0%,#a78bfa 100%);flex-shrink:0;justify-content:center;align-items:center;display:flex;box-shadow:inset 0 1px #fff3}.logo__name{font-family:var(--heading);font-size:var(--logo-name-font);letter-spacing:-.02em;white-space:nowrap;font-weight:700;line-height:1}.logo--auto .logo__name{color:var(--text-h)}.logo--white .logo__name{color:#f3f4f6}.auth-layout{width:100%;min-height:100svh;display:flex}.auth-layout__brand{background:linear-gradient(160deg,#160a2e 0%,#0d0a20 45%,#111828 100%);flex-shrink:0;width:42%;display:none;position:relative;overflow:hidden}.auth-layout__brand:before{content:"";pointer-events:none;background:radial-gradient(80% 60% at 30% 20%,#7c3aed40 0%,#0000 60%),radial-gradient(60% 50% at 70% 80%,#a78bfa1f 0%,#0000 55%);position:absolute;inset:0}.auth-layout__brand-inner{z-index:1;flex-direction:column;height:100%;padding:2.5rem;display:flex;position:relative}.auth-layout__brand-body{flex-direction:column;flex:1;justify-content:center;padding-bottom:3rem;display:flex}.auth-layout__tagline{font-family:var(--heading);letter-spacing:-.03em;color:#f3f4f6;margin:0 0 1rem;font-size:2.5rem;font-weight:700;line-height:1.15}.auth-layout__desc{color:#9ca3af;max-width:320px;margin:0;font-size:1rem;line-height:1.6}.auth-layout__brand-dots{gap:.5rem;display:flex;position:absolute;bottom:2.5rem;right:2.5rem}.auth-layout__dot{opacity:.3;border-radius:50%}.auth-layout__dot--1{background:#a78bfa;width:8px;height:8px}.auth-layout__dot--2{background:#7c3aed;width:6px;height:6px;margin-top:1px}.auth-layout__dot--3{background:#c4b5fd;width:10px;height:10px;margin-top:-1px}.auth-layout__form{background:var(--bg);flex:1;justify-content:center;align-items:center;padding:2rem 1.5rem;display:flex;overflow-y:auto}.auth-layout__form-inner{flex-direction:column;gap:0;width:100%;max-width:400px;display:flex}.auth-layout__mobile-logo{margin-bottom:2rem}@media (width>=768px){.auth-layout__brand{display:flex}.auth-layout__mobile-logo{display:none}}.user-avatar,.avatar-container{border-radius:9999px;flex-shrink:0;display:block;overflow:hidden}.user-avatar--sm{width:30px;height:30px}.user-avatar--md{width:56px;height:56px}.user-avatar--lg{width:88px;height:88px}.user-avatar__image,.avatar-image{object-fit:cover;border-radius:9999px;width:100%;height:100%;display:block}.user-avatar__initials{background:linear-gradient(135deg, var(--accent) 0%, #6d28d9 100%);color:#fff;letter-spacing:.02em;border-radius:9999px;justify-content:center;align-items:center;width:100%;height:100%;font-weight:700;display:flex}.user-avatar--sm .user-avatar__initials{font-size:.6875rem}.user-avatar--md .user-avatar__initials{font-size:1rem}.user-avatar--lg .user-avatar__initials{font-size:1.375rem}.notifications-dropdown{background:var(--surface);border:1px solid var(--border);width:min(22rem,100vw - 2rem);box-shadow:var(--shadow-lg);z-index:55;border-radius:14px;animation:.15s cubic-bezier(.16,1,.3,1) notifications-dropdown-enter;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}@keyframes notifications-dropdown-enter{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.notifications-dropdown__header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;padding:.875rem 1rem;display:flex}.notifications-dropdown__title{color:var(--text-h);margin:0;font-size:.9375rem;font-weight:600}.notifications-dropdown__mark-all{color:var(--accent);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0;font-family:inherit;font-size:.75rem;font-weight:500;transition:opacity .2s}.notifications-dropdown__mark-all:hover{opacity:.85;text-decoration:underline}.notifications-dropdown__body{max-height:22rem;overflow-y:auto}.notifications-dropdown__loading{flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.notifications-dropdown__skeleton{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:10px;height:4.5rem;animation:1.5s ease-in-out infinite pulse}.notifications-dropdown__error{color:var(--text-muted);text-align:center;margin:0;padding:1.25rem 1rem;font-size:.8125rem}.notifications-dropdown__empty{text-align:center;flex-direction:column;align-items:center;gap:.5rem;padding:2rem 1.25rem;display:flex}.notifications-dropdown__empty-icon{background:var(--accent-bg);border:1px solid var(--accent-border);width:3rem;height:3rem;color:var(--accent);border-radius:12px;justify-content:center;align-items:center;margin-bottom:.25rem;display:flex}.notifications-dropdown__empty-title{color:var(--text-h);margin:0;font-size:.875rem;font-weight:600}.notifications-dropdown__empty-desc{color:var(--text-muted);max-width:16rem;margin:0;font-size:.8125rem;line-height:1.45}.notifications-dropdown__list{margin:0;padding:.375rem;list-style:none}.notifications-dropdown__item{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:flex-start;gap:.625rem;width:100%;padding:.75rem;font-family:inherit;transition:background .18s;display:flex;position:relative}.notifications-dropdown__item:hover{background:var(--surface-elevated)}.notifications-dropdown__item--unread{background:#8b5cf60d}.notifications-dropdown__item--unread:hover{background:#8b5cf617}.notifications-dropdown__unread-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;top:.875rem;left:.375rem}.notifications-dropdown__item-icon{flex-shrink:0;margin-top:.1rem;font-size:1.125rem;line-height:1}.notifications-dropdown__item-content{flex-direction:column;gap:.2rem;min-width:0;display:flex}.notifications-dropdown__item-title{color:var(--text-h);font-size:.8125rem;font-weight:600}.notifications-dropdown__item-message{color:var(--text-muted);font-size:.8125rem;line-height:1.4}.notifications-dropdown__item-time{color:var(--text-muted);opacity:.85;font-size:.75rem}.app-header{height:var(--layout-topbar-height,60px);min-height:var(--layout-topbar-height,60px);background:var(--bg);z-index:40;border-bottom:none;flex-shrink:0;justify-content:flex-end;align-items:center;gap:1rem;padding:0 1.75rem;display:flex;position:sticky;top:0}.app-header__left{align-items:center;margin-right:auto;display:flex}.app-header__right{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.header-icon-btn{width:2.25rem;height:2.25rem;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;transition:background .2s,color .2s,border-color .2s,transform .1s;display:flex;position:relative}.header-icon-btn:hover{background:var(--surface-elevated);color:var(--text-h);border-color:var(--border)}.header-icon-btn:active{transform:scale(.94)}.header-theme-toggle{color:var(--text-muted)}.header-menu-btn{display:none}.header-notifications,.header-icon-btn--bell{position:relative}.header-icon-btn--active{background:var(--surface-elevated);color:var(--text-h);border-color:var(--border)}.header-bell__badge{background:var(--accent);color:#fff;text-align:center;pointer-events:none;min-width:1rem;height:1rem;box-shadow:0 0 0 2px var(--bg);border-radius:999px;padding:0 .25rem;font-size:.625rem;font-weight:700;line-height:1rem;position:absolute;top:4px;right:4px}.header-user{margin-left:.25rem;position:relative}.header-user__trigger{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:12px;align-items:center;gap:.625rem;padding:.3125rem .625rem .3125rem .375rem;transition:background .2s,border-color .2s,transform .1s;display:flex}.header-user__trigger:hover{background:var(--surface-elevated);border-color:#ffffff1a}[data-theme=light] .header-user__trigger:hover{border-color:var(--accent-border)}.header-user__trigger:active{transform:scale(.97)}.header-avatar.user-avatar{width:30px;height:30px}.header-user__info{flex-direction:column;align-items:flex-start;line-height:1.2;display:flex}.header-user__name{color:var(--text-h);white-space:nowrap;font-size:.8125rem;font-weight:600}.header-user__plan{color:var(--text-muted);letter-spacing:.01em;white-space:nowrap;margin-top:1px;font-size:.6875rem;font-weight:500}.header-user__plan--pro{color:var(--accent)}.header-chevron{color:var(--text-muted);align-items:center;transition:transform .2s,color .2s;display:flex}.header-chevron--open{transform:rotate(180deg)}.header-user__trigger:hover .header-chevron{color:var(--accent)}.header-dropdown{background:var(--surface);border:1px solid var(--border);min-width:260px;box-shadow:var(--shadow-lg);z-index:50;border-radius:14px;animation:.15s cubic-bezier(.16,1,.3,1) dropdown-enter;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}@keyframes dropdown-enter{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.header-dropdown__header{border-bottom:1px solid var(--border);align-items:center;gap:.75rem;padding:.875rem 1rem;display:flex}.header-dropdown__identity{flex:1;min-width:0}.header-dropdown__name{color:var(--text-h);margin:0 0 .125rem;font-size:.875rem;font-weight:600}.header-dropdown__email{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.8125rem;overflow:hidden}.header-dropdown__section{padding:.375rem}.header-dropdown__plan-panel{border-bottom:1px solid var(--border);flex-direction:column;gap:.625rem;padding:.75rem 1rem;display:flex}.header-dropdown__plan-row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.header-dropdown__plan-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:500}.header-dropdown__plan-value{color:var(--text-h);align-items:center;gap:.35rem;font-size:.8125rem;font-weight:600;display:inline-flex}.header-dropdown__pro-active{color:var(--accent);align-items:center;gap:.35rem;margin:0;font-size:.8125rem;font-weight:600;display:inline-flex}.header-dropdown__features-group{flex-direction:column;gap:.35rem;display:flex}.header-dropdown__features-group--pro{border:1px solid var(--accent-border);background:linear-gradient(135deg,#8b5cf614 0%,#8b5cf608 100%);border-radius:10px;padding:.625rem .75rem}.header-dropdown__features-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:.3rem;margin:0;font-size:.7rem;font-weight:600;display:inline-flex}.header-dropdown__features-list{flex-direction:column;gap:.2rem;margin:0;padding:0;list-style:none;display:flex}.header-dropdown__features-list li{color:var(--text-h);padding-left:.5rem;font-size:.8125rem;position:relative}.header-dropdown__features-list li:before{content:"·";color:var(--text-muted);position:absolute;left:0}.header-dropdown__features-list--pro li{color:var(--text-muted)}.header-dropdown__pro-btn{justify-content:center;align-items:center;gap:.4rem;width:100%;min-height:2.125rem;margin-top:.35rem;font-size:.8125rem;display:inline-flex}.header-dropdown__divider{background:var(--border);height:1px;margin:0}.header-dropdown__item{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:.625rem;padding:.5625rem .75rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:background .15s,color .15s;display:flex}.header-dropdown__item:hover{background:var(--surface-elevated);color:var(--text-h)}.header-dropdown__item--danger{color:var(--expense)}.header-dropdown__item--danger:hover{background:var(--expense-bg);color:var(--expense)}.header-dropdown__item .icon{opacity:.8;flex-shrink:0}@media (width<=767px){.app-header{justify-content:space-between;padding:0 1rem}.header-menu-btn{display:flex}}@media (width<=480px){.header-user__info,.header-chevron{display:none}.header-user__trigger{border-radius:50%;padding:.25rem}.header-dropdown{min-width:200px;right:-.5rem}}@media (width<=360px){.app-header{gap:.5rem;padding:0 .75rem}}.app-sidebar{width:var(--layout-sidebar-width,240px);background:var(--sidebar-bg,var(--surface));border-right:1px solid #ffffff0d;flex-direction:column;flex-shrink:0;min-height:100%;display:flex}[data-theme=light] .app-sidebar{background:var(--surface);border-right-color:#0000000f}.app-sidebar__brand{height:var(--layout-topbar-height,60px);min-height:var(--layout-topbar-height,60px);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 1.125rem;display:flex}.app-sidebar__close{width:2rem;height:2rem;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:background .2s,color .2s,transform .1s;display:none}.app-sidebar__close:hover{background:var(--surface-elevated);color:var(--text-h)}.app-sidebar__close:active{transform:scale(.88)}.app-sidebar__nav{flex:1;padding:1rem .75rem}.app-sidebar__nav ul{flex-direction:column;gap:.375rem;margin:0;padding:0;list-style:none;display:flex}.app-sidebar__link{color:var(--text-muted);border:1px solid #0000;border-radius:10px;align-items:center;gap:.75rem;padding:.6875rem .875rem;font-size:.9375rem;font-weight:500;line-height:1.25;text-decoration:none;transition:background .2s,color .2s,border-color .2s;display:flex}.app-sidebar__link-icon{width:1.25rem;height:1.25rem;color:inherit;opacity:.85;flex-shrink:0;justify-content:center;align-items:center;transition:color .2s,opacity .2s;display:flex}.app-sidebar__link-label{flex:1;min-width:0}.app-sidebar__link-meta{flex-shrink:0;align-items:center;gap:.25rem;margin-left:auto;display:inline-flex}.app-sidebar__link-meta .pro-badge{padding:.08rem .32rem;font-size:.5625rem}.app-sidebar__link-meta svg{color:var(--accent);opacity:.75;flex-shrink:0}.app-sidebar__link--locked{text-align:left;cursor:pointer;width:100%;color:var(--text-h);opacity:1;background:0 0;font-family:inherit}.app-sidebar__link--locked .app-sidebar__link-icon{color:var(--text-h);opacity:.9}.app-sidebar__link--locked .app-sidebar__link-label{color:var(--text-h);font-weight:500}.app-sidebar__link--locked:hover{color:var(--text-h);background:#8b5cf61a;border-color:#8b5cf633}[data-theme=light] .app-sidebar__link--locked:hover{background:var(--accent-bg);border-color:var(--accent-border)}.app-sidebar__link--locked:hover .app-sidebar__link-icon{color:var(--accent);opacity:1}.app-sidebar__link--locked:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.app-sidebar__link:hover{color:var(--text-h);background:#ffffff0a}[data-theme=light] .app-sidebar__link:hover{background:var(--accent-bg)}.app-sidebar__link:hover .app-sidebar__link-icon{opacity:1}.app-sidebar__link--active{color:var(--text-h);background:#8b5cf62e;border-color:#ffffff0d;font-weight:600}[data-theme=light] .app-sidebar__link--active{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.app-sidebar__link--active .app-sidebar__link-icon{color:var(--accent);opacity:1}.app-sidebar__link:focus-visible{outline-offset:0}.app-sidebar__user{border-top:1px solid #ffffff0d;flex-shrink:0;align-items:center;gap:.75rem;margin-top:auto;padding:1rem 1.125rem;display:flex}[data-theme=light] .app-sidebar__user{border-top-color:#0000000f}.app-sidebar__user-info{flex-direction:column;gap:.125rem;min-width:0;display:flex}.app-sidebar__user-name{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:600;overflow:hidden}.app-sidebar__user-email{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.6875rem;overflow:hidden}.app-sidebar__user .user-avatar,.app-sidebar__user .avatar-container{flex-shrink:0;width:36px;height:36px}@media (width<=767px){.app-sidebar{z-index:200;height:100dvh;box-shadow:none;transition:transform .28s cubic-bezier(.4,0,.2,1);position:fixed;top:0;left:0;transform:translate(-100%)}.app-sidebar--open{box-shadow:var(--shadow-lg);transform:translate(0)}.app-sidebar__close{display:flex}}.app-layout{text-align:left;background:var(--bg);width:100%;min-height:100svh;display:flex}.app-layout__main{background:var(--bg);flex-direction:column;flex:1;min-width:0;display:flex}.app-layout__content{padding:var(--layout-content-padding,1.5rem);flex:1;overflow:auto}.app-layout__backdrop{display:none}body.sidebar-lock{overflow:hidden}@media (width<=767px){.app-layout__backdrop{z-index:199;background:#0000008c;animation:.2s backdrop-in;display:block;position:fixed;inset:0}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}}@media (width<=640px){.app-layout__content{padding:1rem}}@media (width<=380px){.app-layout__content{padding:.75rem}}.auth-btn{cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;height:2.75rem;padding:0 1.5rem;font-family:inherit;font-size:.9375rem;font-weight:600;transition:background .15s,opacity .15s,transform .1s;display:inline-flex}.auth-btn:active:not(:disabled){transform:scale(.98)}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-btn--full{width:100%}.auth-btn--primary{background:var(--accent);color:#fff}.auth-btn--primary:hover:not(:disabled){filter:brightness(1.1)}.auth-btn--ghost{color:var(--text-muted);border-color:var(--border);background:0 0}.auth-btn--ghost:hover:not(:disabled){background:var(--surface-elevated);color:var(--text-h)}.auth-btn__spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:1rem;height:1rem;animation:.65s linear infinite auth-spin;display:inline-block}.auth-btn--ghost .auth-btn__spinner{border-color:var(--border);border-top-color:var(--accent)}.auth-btn__text--loading{opacity:.8}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-input{flex-direction:column;gap:.4rem;display:flex}.auth-input__label{color:var(--text-h);font-size:.875rem;font-weight:500;display:block}.auth-input__wrapper{position:relative}.auth-input__icon{color:var(--text-muted);pointer-events:none;align-items:center;display:flex;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}.auth-input__field{border:1px solid var(--border);background:var(--surface-elevated);width:100%;height:2.75rem;color:var(--text-h);border-radius:8px;outline:none;padding:0 .875rem;font-family:inherit;font-size:.9375rem;transition:border-color .15s,box-shadow .15s}.auth-input__field::placeholder{color:var(--text-muted)}.auth-input__field:hover:not(:focus){border-color:var(--accent-border)}.auth-input__field:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.auth-input__field:focus-visible{outline:none}.auth-input__field--has-icon{padding-left:2.5rem}.auth-input__field--has-toggle{padding-right:2.75rem}.auth-input--error .auth-input__field,.auth-input--error .auth-input__field:hover:not(:focus){border-color:var(--expense)}.auth-input--error .auth-input__field:focus{border-color:var(--expense);box-shadow:0 0 0 3px var(--expense-bg)}.auth-input__toggle{width:2rem;height:2rem;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:color .15s,background .15s;display:flex;position:absolute;top:50%;right:.625rem;transform:translateY(-50%)}.auth-input__toggle:hover{color:var(--text-h);background:var(--border)}.auth-input__error{color:var(--expense);margin:0;font-size:.8125rem}.auth-page{width:100%}.auth-card{flex-direction:column;gap:1.5rem;display:flex}.auth-card__header{flex-direction:column;gap:.375rem;display:flex}.auth-card__title{color:var(--text-h);letter-spacing:-.03em;font-size:1.75rem;font-weight:700;font-family:var(--heading);margin:0}.auth-card__subtitle{color:var(--text-muted);margin:0;font-size:.9375rem;line-height:1.5}.auth-card__email{color:var(--accent);word-break:break-all;margin:0;font-size:.9375rem;font-weight:600}.auth-form{flex-direction:column;gap:1.125rem;display:flex}.auth-alert{background:var(--expense-bg);border:1px solid var(--expense-border);color:var(--expense);border-radius:8px;padding:.75rem 1rem;font-size:.875rem;font-weight:500}.auth-alert--info{background:var(--accent-bg);border-color:var(--accent-border);color:var(--text-h)}.auth-alert--success{background:var(--income-bg);border-color:var(--income-border);color:var(--income)}.auth-card__footer{text-align:center;color:var(--text-muted);margin:0;font-size:.9rem}.auth-card__actions{flex-direction:column;gap:.75rem;display:flex}.auth-card__actions-row{flex-wrap:wrap;gap:.75rem;display:flex}.auth-card__actions-row .auth-btn{flex:auto;min-width:0}.auth-link{color:var(--accent);font-weight:600;text-decoration:none;transition:opacity .15s}.auth-link:hover{opacity:.8;text-decoration:underline}.auth-link--block{text-align:center;margin-top:.25rem;display:block}.auth-status{text-align:center;flex-direction:column;align-items:center;gap:1rem;padding:1rem 0;display:flex}.auth-status__spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:2.5rem;height:2.5rem;animation:.8s linear infinite auth-spin}.auth-status__message{color:var(--text-muted);margin:0;font-size:.9375rem;line-height:1.5}.login-page__forgot{align-self:flex-end;margin-top:-.25rem;font-size:.8125rem}.register-page{width:100%}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:12px;padding:1.25rem 1.5rem;transition:box-shadow .2s,border-color .2s}[data-theme=dark] .card{box-shadow:var(--shadow-card,var(--shadow-sm))}.card:hover{box-shadow:var(--shadow-md)}.card__header{margin-bottom:.75rem}.card__header:empty{display:none}.card__body{min-width:0}.card__footer{border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.card--income{border-color:var(--income-border);background:linear-gradient(135deg, var(--surface) 0%, var(--income-bg) 100%)}.card--expense{border-color:var(--expense-border);background:linear-gradient(135deg, var(--surface) 0%, var(--expense-bg) 100%)}.card--balance{border-color:var(--accent-border);background:linear-gradient(135deg, var(--surface) 0%, var(--accent-bg) 100%)}[data-theme=dark] .card--income{background:linear-gradient(145deg,#111520 0%,#22c55e14 100%);border-color:#ffffff0f}[data-theme=dark] .card--expense{background:linear-gradient(145deg,#111520 0%,#ef444414 100%);border-color:#ffffff0f}[data-theme=dark] .card--balance{background:linear-gradient(145deg,#111520 0%,#8b5cf61a 100%);border-color:#ffffff0f}.insight-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:12px;flex-direction:column;justify-content:center;min-height:124px;padding:1.25rem 1.5rem 1.25rem 1.625rem;display:flex;position:relative;overflow:hidden}[data-theme=dark] .insight-card{border-radius:var(--card-radius,24px);box-shadow:var(--shadow-card,var(--shadow-sm));background:#111520;border-color:#ffffff0f}.insight-card:before{content:"";border-radius:4px 0 0 4px;width:4px;position:absolute;top:0;bottom:0;left:0}.insight-card--income:before{background:var(--income)}.insight-card--expense:before{background:var(--expense)}.insight-card--balance:before{background:var(--accent)}.insight-card--neutral:before{background:#94a3b880}.insight-card__label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;text-overflow:ellipsis;margin:0 0 .5rem;font-size:.8125rem;font-weight:500;overflow:hidden}.insight-card__value{font-family:var(--heading);letter-spacing:-.03em;color:var(--text-h);margin:0;font-size:1.625rem;font-weight:600;line-height:1.15}.insight-card__value--income{color:var(--income)}.insight-card__value--expense{color:var(--expense)}.insight-card__value--balance{color:var(--accent)}.insight-card__value--neutral{color:var(--text-h)}.insight-card__description{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:.5rem 0 0;font-size:.8125rem;line-height:1.45;display:-webkit-box;overflow:hidden}@media (width<=640px){.insight-card{min-height:112px;padding:1.125rem 1.25rem 1.125rem 1.5rem}.insight-card__value{font-size:1.375rem}}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.25rem;width:100%;display:flex}.page-header__title{letter-spacing:-.03em;color:var(--text-h);margin:0 0 .375rem;font-size:1.875rem;font-weight:600;line-height:1.2}.page-header__subtitle{color:var(--text-muted);max-width:36rem;margin:0;font-size:.9375rem;line-height:1.5}.page-header__action{flex-shrink:0;align-self:flex-start}@media (width<=640px){.page-header__title{font-size:1.5rem}.page-header__action,.page-header__action .btn{width:100%}}.stat-card{flex-direction:column;justify-content:center;gap:.625rem;min-height:124px;display:flex}.stat-card.card--default{padding:1.5rem 1.75rem}[data-theme=dark] .stat-card.card{border-radius:var(--card-radius,24px);box-shadow:var(--shadow-card,var(--shadow-sm));padding:1.5rem 1.75rem}.stat-card__label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:.875rem;font-weight:500}.stat-card__value{font-family:var(--heading);letter-spacing:-.02em;color:var(--text-h);margin:0;font-size:1.75rem;font-weight:600;line-height:1.2}.stat-card__value--income{color:var(--income)}.stat-card__value--expense{color:var(--expense)}.stat-card__value--balance{color:var(--accent)}.stat-card__hint{color:var(--text-muted);margin:0;font-size:.75rem;font-weight:500;line-height:1.4}.stat-card__skeleton{background:linear-gradient(90deg, var(--border) 0%, var(--surface-elevated) 50%, var(--border) 100%);background-size:200% 100%;border-radius:6px;width:70%;height:2rem;animation:1.2s ease-in-out infinite shimmer}.stat-card--entrance{opacity:0;animation:.4s ease-out forwards stat-card-enter}@keyframes stat-card-enter{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.stat-card--interactive{cursor:pointer;transition:all .3s ease-in-out}@media (hover:hover) and (pointer:fine){.stat-card--interactive:hover{background-color:color-mix(in srgb, var(--surface) 80%, var(--surface-elevated));transform:translateY(-4px);box-shadow:0 20px 40px #0f172a1f,0 0 0 1px #8b5cf61f,0 0 28px #8b5cf61a;border-color:#8b5cf666!important}[data-theme=dark] .stat-card--interactive:hover{background-color:color-mix(in srgb, var(--surface) 86%, #8b5cf60d);box-shadow:0 16px 36px #00000047,0 0 0 1px #8b5cf633,0 0 32px #8b5cf61f}.stat-card--interactive.card--income:hover{box-shadow:0 20px 40px #0f172a1a,0 0 0 1px #8b5cf624,0 0 36px #8b5cf61f,0 0 48px #22c55e14}.stat-card--interactive.card--expense:hover{box-shadow:0 20px 40px #0f172a1a,0 0 0 1px #8b5cf624,0 0 36px #8b5cf61f,0 0 48px #ef444414}}@media (width<=640px){.stat-card__value{font-size:1.5rem}[data-theme=dark] .stat-card.card{min-height:112px;padding:1.25rem 1.5rem}@media (hover:hover) and (pointer:fine){.stat-card--interactive:hover{transform:translateY(-2px);box-shadow:0 12px 24px #0f172a1a,0 0 0 1px #8b5cf61a,0 0 20px #8b5cf614}[data-theme=dark] .stat-card--interactive:hover{box-shadow:0 12px 28px #00000038,0 0 0 1px #8b5cf629,0 0 24px #8b5cf61a}}}@media (prefers-reduced-motion:reduce){.stat-card--entrance{opacity:1;animation:none}.stat-card--interactive{transition:none}.stat-card--interactive:hover{transform:none}}.period-picker{background:var(--surface);border:1px solid var(--border);z-index:1;border-radius:12px;align-self:flex-start;align-items:center;gap:.25rem;padding:.375rem .5625rem;display:inline-flex;position:relative}.period-picker--compact{z-index:1}.period-picker__nav{width:1.75rem;height:1.75rem;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1.375rem;line-height:1;transition:background .15s,color .15s;display:flex}.period-picker__nav:hover:not(:disabled){background:var(--surface-elevated);color:var(--text-h)}.period-picker__nav:disabled{opacity:.3;cursor:default}.period-picker__trigger-wrap{position:relative}.period-picker__trigger{min-width:168px;height:1.75rem;color:var(--text-h);letter-spacing:-.01em;white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:7px;justify-content:space-between;align-items:center;gap:.5rem;padding:0 .625rem;font-family:inherit;font-size:.9375rem;font-weight:600;transition:background .15s,color .15s;display:flex}.period-picker__trigger:hover,.period-picker__trigger--open{background:var(--accent-bg);color:var(--accent)}.period-picker__label{text-align:left;flex:1}.period-picker__chevron{color:var(--text-muted);flex-shrink:0;align-items:center;transition:transform .2s,color .2s;display:flex}.period-picker__trigger--open .period-picker__chevron,.period-picker__trigger:hover .period-picker__chevron{color:var(--accent)}.period-picker__trigger--open .period-picker__chevron{transform:rotate(180deg)}.period-picker__dropdown{background:var(--surface-elevated);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:12px;animation:.14s cubic-bezier(.16,1,.3,1) both pp-enter}[data-theme=dark] .period-picker__dropdown{background:var(--surface);border-color:#ffffff14}.period-picker__dropdown--compact{padding:.75rem}.period-picker__dropdown:not(.period-picker__dropdown--compact){scrollbar-width:thin;scrollbar-color:var(--border) transparent;max-height:400px;padding:.375rem;overflow-y:auto}.period-picker__dropdown:not(.period-picker__dropdown--compact)::-webkit-scrollbar{width:4px}.period-picker__dropdown:not(.period-picker__dropdown--compact)::-webkit-scrollbar-track{background:0 0}.period-picker__dropdown:not(.period-picker__dropdown--compact)::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}@keyframes pp-enter{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.period-picker__year-nav{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.period-picker__year-nav-btn{border:1px solid var(--border);width:2rem;height:2rem;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;font-size:1.125rem;line-height:1;transition:background .15s,color .15s,border-color .15s;display:flex}.period-picker__year-nav-btn:hover{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.period-picker__year-nav-label{color:var(--text-h);letter-spacing:-.01em;font-size:.9375rem;font-weight:600}.period-picker__all-btn{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:7px;justify-content:space-between;align-items:center;padding:.5625rem .75rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:background .12s,color .12s;display:flex}.period-picker__all-btn:hover{background:var(--accent-bg);color:var(--accent)}.period-picker__divider{background:var(--border);height:1px;margin:.25rem .375rem}.period-picker__year-group{margin-bottom:.0625rem}.period-picker__year-row{align-items:center;gap:.125rem;display:flex}.period-picker__year-btn{color:var(--text-h);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:7px;flex:1;align-items:center;gap:.5rem;padding:.5rem .75rem;font-family:inherit;font-size:.875rem;font-weight:600;transition:background .12s,color .12s;display:flex}.period-picker__year-btn:hover{background:var(--accent-bg);color:var(--accent)}.period-picker__expand-btn{width:1.75rem;height:1.75rem;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:background .12s,color .12s,transform .2s;display:flex}.period-picker__expand-btn:hover{background:var(--surface);color:var(--text-h)}.period-picker__expand-btn--open{transform:rotate(90deg)}.period-picker__months{grid-template-columns:repeat(4,1fr);gap:.1875rem;padding:.25rem .5rem .5rem;display:grid}.period-picker__months--compact{grid-template-columns:repeat(3,1fr);gap:.375rem;padding:0}.period-picker__month-btn{height:2rem;color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;font-family:inherit;font-size:.8125rem;font-weight:500;transition:background .12s,color .12s,border-color .12s;display:flex}.period-picker__months--compact .period-picker__month-btn{height:2.125rem}.period-picker__month-btn:hover:not(:disabled){background:var(--accent-bg);color:var(--accent)}.period-picker__month-btn--active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.period-picker__month-btn--active:hover:not(:disabled){background:var(--accent);color:#fff}.period-picker__month-btn--today{border-color:var(--accent-border);color:var(--accent)}.period-picker__month-btn--empty{color:var(--border);cursor:default}.period-picker__month-btn:disabled{opacity:1}.period-picker__footer{border-top:1px solid var(--border);margin-top:.75rem;padding-top:.75rem}.period-picker__footer-btn{border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;background:0 0;border-radius:8px;padding:.5rem .75rem;font-family:inherit;font-size:.8125rem;font-weight:500;transition:background .15s,color .15s,border-color .15s}.period-picker__footer-btn:hover,.period-picker__footer-btn--active{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.period-picker__option--active{background:var(--accent-bg);color:var(--accent);font-weight:600}.period-picker__badge{background:var(--accent-bg);border:1px solid var(--accent-border);color:var(--accent);letter-spacing:.01em;border-radius:999px;padding:.0625rem .375rem;font-size:.6875rem;font-weight:600;line-height:1.4;display:inline-block}.period-picker__check{color:var(--accent);flex-shrink:0;align-items:center;display:flex}@media (width<=480px){.period-picker__trigger{min-width:138px;font-size:.875rem}}.category-chart{width:100%}.category-chart--empty{height:240px;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:flex}.category-chart--empty:before{content:"📊";opacity:.5;font-size:2rem;line-height:1}.category-chart__legend{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex-direction:column;gap:.375rem;max-height:160px;margin:.75rem 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.category-chart__legend::-webkit-scrollbar{width:4px}.category-chart__legend::-webkit-scrollbar-track{background:0 0}.category-chart__legend::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.category-chart__legend-item{grid-template-columns:auto 1fr auto;align-items:center;gap:.5rem;padding:.1875rem 0;display:grid}.category-chart__legend-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.category-chart__legend-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;overflow:hidden}.category-chart__legend-value{font-size:.8125rem;font-family:var(--mono);color:var(--text-h);font-weight:500}.income-expense-chart{flex-direction:column;gap:.875rem;width:100%;display:flex}.income-expense-chart__header{min-width:0}.income-expense-chart__title{color:var(--text-h);letter-spacing:-.01em;margin:0;font-size:.9375rem;font-weight:600}.income-expense-chart__subtitle{color:var(--text-muted);margin:.25rem 0 0;font-size:.8125rem;line-height:1.4}.income-expense-chart__legend{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:1.25rem;display:flex}.income-expense-chart__legend-item{color:var(--text);align-items:center;gap:.4375rem;font-size:.8125rem;font-weight:500;display:inline-flex}.income-expense-chart__legend-dot{border-radius:999px;flex-shrink:0;width:.625rem;height:.625rem}.income-expense-chart__canvas{width:100%;height:350px}.ie-chart-tooltip{background:#0f1419;border:1px solid #ffffff1a;border-radius:12px;min-width:188px;padding:.875rem 1rem;box-shadow:0 12px 32px #00000073,0 0 0 1px #ffffff0a}[data-theme=light] .ie-chart-tooltip{background:#1a1f2e}.ie-chart-tooltip__title{color:#f8fafc;letter-spacing:-.01em;margin:0 0 .625rem;font-size:.8125rem;font-weight:600}.ie-chart-tooltip__row{justify-content:space-between;align-items:center;gap:1.25rem;margin-top:.375rem;display:flex}.ie-chart-tooltip__row--balance{margin-top:0}.ie-chart-tooltip__label{color:#94a3b8;align-items:center;gap:.4375rem;font-size:.8125rem;display:inline-flex}.ie-chart-tooltip__value{color:#f1f5f9;white-space:nowrap;font-size:.8125rem;font-weight:600}.ie-chart-tooltip__dot{border-radius:999px;flex-shrink:0;width:.5rem;height:.5rem}.ie-chart-tooltip__dot--income{background:#22c55e}.ie-chart-tooltip__dot--expense{background:#ef4444}.ie-chart-tooltip__divider{background:#ffffff1a;height:1px;margin:.625rem 0 .5rem}@media (width<=640px){.income-expense-chart__canvas{height:250px}}@media (width<=480px){.income-expense-chart__legend{justify-content:flex-start}}.pagination{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;padding-top:.25rem;display:flex}.pagination__pages{align-items:center;gap:.25rem;display:flex}.pagination__page-wrap{align-items:center;gap:.25rem;display:inline-flex}.pagination__ellipsis{color:var(--text-muted);-webkit-user-select:none;user-select:none;padding:0 .25rem;font-size:.875rem}.pagination__status{min-width:4.5rem;color:var(--text-muted);text-align:center;-webkit-user-select:none;user-select:none;padding:0 .5rem;font-size:.875rem;font-weight:500}.pagination__btn{border:1px solid var(--border);background:var(--surface-elevated);min-width:2.25rem;height:2.25rem;color:var(--text);cursor:pointer;border-radius:8px;padding:0 .625rem;font-family:inherit;font-size:.8125rem;font-weight:500;transition:background .15s,border-color .15s,color .15s}.pagination__btn--nav{padding:0 .875rem}.pagination__btn:hover:not(:disabled):not(.pagination__btn--active){border-color:var(--accent-border);background:var(--accent-bg);color:var(--text-h)}.pagination__btn--active{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent);font-weight:600}.pagination__btn:disabled{opacity:.4;cursor:not-allowed}@media (width<=480px){.pagination__btn--nav{padding:0 .5rem;font-size:.75rem}}.icon-btn{border:1px solid var(--border);background:var(--surface);width:2rem;height:2rem;color:var(--text-muted);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s,border-color .15s,transform .1s;display:inline-flex}.icon-btn:hover:not(:disabled){background:var(--surface-elevated);color:var(--text-h);border-color:var(--accent-border)}.icon-btn:active:not(:disabled){transform:scale(.88)}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn--danger:hover:not(:disabled){background:var(--expense-bg);color:var(--expense);border-color:var(--expense-border)}.icon-btn .icon{display:block}.transaction-item{border:1px solid #0000;border-radius:12px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:0 1rem;padding:.875rem .625rem;list-style:none;display:grid}.transaction-item:first-child{padding-top:0}.transaction-item:last-child{padding-bottom:0}.transaction-item__icon{background:var(--surface-elevated);border:1px solid var(--border);width:42px;height:42px;color:var(--text-muted);border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.transaction-item__info{flex-direction:column;gap:.2rem;min-width:0;display:flex}.transaction-item__description{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;font-size:.9375rem;font-weight:600;overflow:hidden}.transaction-item__category{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.375rem;font-size:.8125rem;display:flex}.transaction-item__category-text{color:var(--text-muted)}.transaction-item__sep{color:var(--text-muted);opacity:.7}.transaction-item__type-badge{letter-spacing:.03em;border-radius:999px;align-items:center;padding:.125rem .45rem;font-size:.625rem;font-weight:600;line-height:1.4;display:inline-flex}.transaction-item__type-badge--income{color:var(--income);background:var(--income-bg);border:1px solid var(--income-border,#22c55e40)}.transaction-item__type-badge--expense{color:var(--expense);background:var(--expense-bg);border:1px solid var(--expense-border)}.transaction-item__badge{letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted);background:var(--surface-elevated);border:1px solid var(--border);border-radius:4px;align-items:center;padding:.1rem .4rem;font-size:.625rem;font-weight:600;line-height:1.4;display:inline-flex}[data-theme=dark] .transaction-item__badge{border-color:#ffffff14}.transaction-item__meta{text-align:right;flex-direction:column;justify-content:center;align-items:flex-end;gap:.375rem;min-width:148px;padding-right:.25rem;display:flex}.transaction-item__date{color:var(--text-muted);font-size:.8125rem}.transaction-item__amount{font-family:var(--mono);font-size:.9375rem;font-weight:600}.transaction-item__amount--income{color:var(--income)}.transaction-item__amount--expense{color:var(--expense)}.transaction-item__actions{align-items:center;gap:.25rem;display:flex}@media (width<=640px){.transaction-item{grid-template-rows:auto auto;grid-template-columns:auto 1fr auto;row-gap:.5rem}.transaction-item__meta{align-items:flex-end;min-width:0}.transaction-item__actions{grid-column:1/-1;justify-content:flex-end}}[data-theme=dark] .transaction-list-card.card{border-radius:var(--card-radius,24px);box-shadow:var(--shadow-card,var(--shadow-sm));border-color:#ffffff0f;padding:1.75rem 2rem}.transaction-list-card .card__header{color:var(--text-h);margin-bottom:.5rem;font-size:1.0625rem;font-weight:600}.transaction-list-card__subtitle{color:var(--text-muted);margin:0 0 1rem;font-size:.8125rem}.transaction-list-card .pagination{border-top:1px solid color-mix(in srgb, var(--border) 50%, transparent);margin-top:1rem;padding-top:1rem}.transaction-list{flex-direction:column;gap:.375rem;margin:0;padding:0;display:flex}.transaction-list__empty{text-align:center;flex-direction:column;align-items:center;gap:.5rem;padding:2rem 1rem;display:flex}.transaction-list__empty-icon{background:var(--surface-elevated);width:3rem;height:3rem;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.25rem;display:flex}.transaction-list__empty-icon .icon{width:1.25rem;height:1.25rem}.transaction-list__empty-title{color:var(--text-h);margin:0;font-size:.9375rem;font-weight:600}.transaction-list__empty-desc{color:var(--text-muted);max-width:260px;margin:0;font-size:.875rem}.transaction-list__empty-btn{border:1px solid var(--accent-border);background:var(--accent-bg);color:var(--accent);cursor:pointer;border-radius:8px;align-items:center;gap:.375rem;margin-top:.75rem;padding:.5rem 1.125rem;font-family:inherit;font-size:.875rem;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.transaction-list__empty-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.transaction-list__empty-btn .icon{width:14px;height:14px}.transaction-list__skeleton-row{background:linear-gradient(90deg, var(--border) 0%, var(--surface-elevated) 50%, var(--border) 100%);background-size:200% 100%;border-radius:8px;height:52px;margin-bottom:.5rem;list-style:none;animation:1.2s ease-in-out infinite shimmer}.transaction-list__skeleton-row:last-child{margin-bottom:0}.cat-sel{width:100%;position:relative}.cat-sel__trigger{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text-h);cursor:pointer;text-align:left;border-radius:8px;align-items:center;gap:.5rem;padding:.625rem .75rem;font-family:inherit;font-size:.9375rem;transition:border-color .15s,box-shadow .15s;display:flex}.cat-sel__trigger:hover:not(:disabled){border-color:var(--accent-border)}.cat-sel__trigger--open{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.cat-sel__trigger:disabled{opacity:.6;cursor:not-allowed}.cat-sel__icon{border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.cat-sel__label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.cat-sel__label--placeholder{color:var(--text-muted)}.cat-sel__chevron{color:var(--text-muted);flex-shrink:0;align-items:center;transition:transform .15s;display:flex}.cat-sel__trigger--open .cat-sel__chevron{transform:rotate(180deg)}.cat-sel__dropdown{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);z-index:300;scrollbar-width:thin;scrollbar-color:var(--border) transparent;border-radius:10px;max-height:220px;padding:.25rem 0;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.cat-sel__dropdown::-webkit-scrollbar{width:4px}.cat-sel__dropdown::-webkit-scrollbar-track{background:0 0}.cat-sel__dropdown::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.cat-sel__divider{background:var(--border);height:1px;margin:.25rem 0}.cat-sel__option{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.625rem;padding:.5rem .75rem;font-family:inherit;font-size:.9rem;transition:background .12s;display:flex}.cat-sel__option:hover{background:var(--surface-elevated)}.cat-sel__option--active{background:var(--accent-bg);color:var(--accent)}.cat-sel__option--empty{color:var(--text-muted);font-style:italic}.cat-sel__option--empty.cat-sel__option--active{color:var(--accent);font-style:normal}.cat-sel__option-icon{border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.cat-sel__option-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.cat-sel__option-check{color:var(--accent);flex-shrink:0}.transaction-form{flex-direction:column;gap:1rem;display:flex}.transaction-form__notice{background:var(--accent-bg);border:1px solid var(--accent-border);color:var(--text-muted);border-radius:8px;margin:0;padding:.625rem .75rem;font-size:.75rem;line-height:1.55}.transaction-form__row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.transaction-form__field{flex-direction:column;gap:.375rem;display:flex}.transaction-form__field label{color:var(--text-h);font-size:.8125rem;font-weight:500;display:block}.transaction-form__field input,.transaction-form__select,.transaction-form__currency-input{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text-h);border-radius:8px;outline:none;padding:.625rem .75rem;font-family:inherit;font-size:.9375rem;transition:border-color .15s,box-shadow .15s}.transaction-form__field input::placeholder{color:var(--text-muted)}.transaction-form__field input:hover:not(:focus),.transaction-form__select:hover:not(:focus){border-color:var(--accent-border)}.transaction-form__field input:focus,.transaction-form__select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.transaction-form__field input:focus-visible,.transaction-form__select:focus-visible{outline:none}.transaction-form__manage-link{color:var(--text-muted);align-self:flex-end;font-size:.75rem;text-decoration:none;transition:color .15s}.transaction-form__manage-link:hover{color:var(--accent);text-decoration:underline}.transaction-form__actions{justify-content:flex-end;gap:.75rem;margin-top:.5rem;display:flex}@media (width<=480px){.transaction-form__row{grid-template-columns:1fr}.transaction-form__actions{flex-direction:column-reverse}.transaction-form__actions .btn{width:100%}}.dashboard{gap:var(--section-gap,2rem);flex-direction:column;max-width:1100px;margin:0 auto;display:flex}.dashboard__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.5rem;width:100%;display:flex}.dashboard__header .page-header{flex:auto;width:auto;min-width:0}.dashboard__header .page-header__title{margin-bottom:.25rem}.dashboard__header .page-header__subtitle{margin-bottom:0}.dashboard__controls{flex-shrink:0;align-items:center;gap:1rem;margin-top:0;display:flex}.dashboard__controls .period-picker{border-radius:12px;align-self:auto;min-height:2.5rem;padding-top:0;padding-bottom:0}.dashboard__export-btn{border:1px solid var(--border);background:var(--surface);min-height:2.5rem;color:var(--text-h);cursor:pointer;white-space:nowrap;border-radius:12px;justify-content:center;align-items:center;gap:.5rem;padding:0 1.125rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:border-color .2s,background .2s,color .2s,box-shadow .2s,opacity .15s;display:inline-flex}.dashboard__export-btn:hover:not(:disabled){background:var(--surface-elevated);color:var(--accent);border-color:#8b5cf673;box-shadow:0 0 0 1px #8b5cf61f,0 0 20px #8b5cf624}.dashboard__export-btn:disabled{opacity:.45;cursor:not-allowed;color:var(--text-muted);border-color:var(--border);background:var(--surface-elevated);box-shadow:none}.dashboard__export-btn:disabled:hover{border-color:var(--border);background:var(--surface-elevated);color:var(--text-muted);box-shadow:none}.dashboard__export-btn--loading:disabled{opacity:.75;color:var(--text-h)}.dashboard__export-icon{flex-shrink:0}.dashboard__export-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:13px;height:13px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.dashboard__kpis{grid-template-columns:repeat(3,1fr);gap:1.25rem;display:grid}.dashboard__kpis--4{grid-template-columns:repeat(4,1fr)}.dashboard__ext-row{grid-template-columns:1fr 1fr;align-items:stretch;gap:1.25rem;display:grid}.dashboard__ext-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius,24px);box-shadow:var(--shadow-card,var(--shadow-sm));flex-direction:column;gap:1rem;min-height:0;padding:1.375rem;display:flex}.dash-section-header{align-items:center;gap:.5rem;display:flex}.dash-section-header__icon{border-radius:var(--radius-md,8px);background:var(--accent-bg);width:28px;height:28px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.dash-section-header__title{color:var(--text-h);letter-spacing:-.01em;flex:1;margin:0;font-size:.9375rem;font-weight:600}.dash-section-header__link{color:var(--accent);white-space:nowrap;opacity:.88;align-items:center;gap:.3rem;font-size:.8125rem;font-weight:500;text-decoration:none;transition:color .2s,opacity .2s;display:inline-flex}.dash-section-header__link:hover{opacity:1;color:#a78bfa;text-decoration:none}.dash-section-header__link-arrow{transition:transform .2s;display:inline-block}.dash-section-header__link:hover .dash-section-header__link-arrow{transform:translate(2px)}.dash-section-header__link--btn{cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}.dashboard__ext-card--locked{gap:.75rem;padding:1.25rem}.dashboard__export-btn--pro{gap:.375rem}.dashboard__export-btn--pro:not(:disabled):hover{border-color:var(--accent-border)}.dashboard__mini-stats{grid-template-columns:repeat(4,minmax(5.5rem,1fr));gap:.5rem;display:grid}.dashboard__mini-stats--goals{grid-template-columns:minmax(3.75rem,.85fr) minmax(4.5rem,1fr) minmax(4.25rem,.95fr) minmax(7.25rem,1.35fr)}.dashboard__mini-stats--recurrences{grid-template-columns:minmax(3.5rem,.8fr) minmax(6.75rem,1.2fr) minmax(6.75rem,1.2fr) minmax(5rem,1fr)}.dash-mini-stat{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md,8px);flex-direction:column;gap:.3rem;min-width:0;padding:.625rem .75rem;display:flex}.dash-mini-stat__label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;white-space:normal;font-size:.7rem;font-weight:600;line-height:1.25;overflow:visible}.dash-mini-stat__value{font-family:var(--heading,inherit);color:var(--text-h);letter-spacing:-.02em;text-overflow:unset;white-space:nowrap;font-size:1.0625rem;font-weight:700;line-height:1.25;overflow:visible}.dash-mini-stat--monetary .dash-mini-stat__value{white-space:normal;word-break:break-word;overflow-wrap:anywhere;font-size:1rem}.dash-mini-stat--income .dash-mini-stat__value{color:var(--income)}.dash-mini-stat--expense .dash-mini-stat__value{color:var(--expense)}.dash-mini-stat--balance .dash-mini-stat__value{color:var(--accent)}.dashboard__widget-spotlight{flex-direction:column;flex:1;justify-content:center;min-height:5.5rem;display:flex}.dash-widget-spotlight{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md,8px);grid-template-columns:32px 1fr;align-items:center;gap:.75rem;padding:.75rem .875rem;transition:background .18s,border-color .18s,box-shadow .18s;display:grid}.dash-widget-spotlight:not(.dash-widget-spotlight--skeleton):hover{background:var(--surface-hover,var(--surface-elevated));border-color:#8b5cf647;box-shadow:0 0 0 1px #8b5cf60f}.dash-widget-spotlight__icon{border-radius:var(--radius-sm,6px);flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.dash-widget-spotlight__body{flex-direction:column;gap:.25rem;min-width:0;display:flex}.dash-widget-spotlight__row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.dash-widget-spotlight__name{color:var(--text-h);letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:.9375rem;font-weight:600;overflow:hidden}.dash-widget-spotlight__pct{font-family:var(--heading,inherit);letter-spacing:-.02em;flex-shrink:0;font-size:.875rem;font-weight:700}.dash-widget-spotlight__meta{color:var(--text-muted);flex-wrap:wrap;align-items:baseline;gap:.35rem;margin:0;font-size:.8125rem;display:flex}.dash-widget-spotlight__money{font-family:var(--heading,inherit);white-space:normal;word-break:break-word;overflow-wrap:anywhere;text-overflow:unset;font-size:.875rem;font-weight:600;line-height:1.3;overflow:visible}.dash-widget-spotlight__sep{opacity:.6}.dash-widget-spotlight__bar{background:var(--surface-subtle);border-radius:999px;height:5px;margin-top:.125rem;overflow:hidden}.dash-widget-spotlight__bar-fill{border-radius:999px;height:100%;transition:width .4s}.dash-widget-spotlight__type{border-radius:999px;align-items:center;gap:.2rem;padding:.1rem .35rem;font-size:.68rem;font-weight:600;display:inline-flex}.dash-widget-spotlight__type--income{color:var(--income);background:#22c55e1a}.dash-widget-spotlight__type--expense{color:var(--expense);background:#ef44441a}.dash-widget-spotlight__amount{font-family:var(--heading,inherit);letter-spacing:-.02em;white-space:nowrap;text-align:right;flex-shrink:0;font-size:.875rem;font-weight:700;line-height:1.3}.dash-widget-spotlight__amount--income{color:var(--income)}.dash-widget-spotlight__amount--expense{color:var(--expense)}.dash-widget-spotlight__rec-meta{align-items:center;gap:.5rem}.dash-widget-spotlight__rec-category{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:.75rem;overflow:hidden}.dash-widget-spotlight--rec{align-items:center;min-height:4.25rem}.dash-widget-spotlight--skeleton{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md,8px);min-height:4.25rem;animation:1.5s ease-in-out infinite pulse}.dash-widget-empty{color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;min-height:4.25rem;padding:.75rem;font-size:.75rem;display:flex}.dash-widget-empty p{margin:0}.dashboard__analysis{gap:var(--section-gap,2rem);flex-direction:column;display:flex}.dashboard__charts{grid-template-columns:3fr 2fr;align-items:stretch;gap:1.25rem;display:grid}.dashboard__chart-card.card{padding:1.75rem 2rem}[data-theme=dark] .dashboard__chart-card.card{border-radius:var(--card-radius,24px);box-shadow:var(--shadow-card,var(--shadow-sm));border-color:#ffffff0f}.dashboard__chart-card .card__header{color:var(--text-h);letter-spacing:-.01em;margin-bottom:1.25rem;font-size:.9375rem;font-weight:600}.dashboard__highlights{grid-template-columns:repeat(4,1fr);gap:1.25rem;display:grid}.dashboard__empty{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius,24px);box-shadow:var(--shadow-card,var(--shadow-sm));flex-direction:column;align-items:center;gap:.75rem;padding:3.5rem 1.5rem;display:flex}.dashboard__empty-visual{background:var(--accent-bg);border:1px solid var(--accent-border);width:5.5rem;height:5.5rem;color:var(--accent);border-radius:18px;justify-content:center;align-items:center;margin-bottom:.5rem;display:flex}.dashboard__empty-title{color:var(--text-h);letter-spacing:-.01em;margin:0;font-size:1.125rem;font-weight:600}.dashboard__empty-desc{color:var(--text-muted);max-width:360px;margin:0;font-size:.9375rem;line-height:1.5}.dashboard__empty-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:.5rem;display:flex}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.dash-widget-spotlight,.dash-section-header__link,.dash-section-header__link-arrow{transition:none}.dash-section-header__link:hover .dash-section-header__link-arrow{transform:none}}@media (width<=1024px){.dashboard__kpis--4{grid-template-columns:repeat(2,1fr)}}@media (width<=960px){.dashboard__ext-row,.dashboard__charts{grid-template-columns:1fr}.dashboard__highlights{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.dashboard{gap:1.5rem}.dashboard__header{gap:1rem}.dashboard__controls{gap:.75rem}.dashboard__controls .period-picker,.dashboard__export-btn{min-height:2.375rem}.dashboard__kpis,.dashboard__kpis--4,.dashboard__mini-stats{grid-template-columns:repeat(2,1fr)}.dashboard__highlights{grid-template-columns:1fr}.dashboard__chart-card.card{padding:1.25rem 1.5rem}}@media (width<=480px){.dashboard__header{flex-direction:column;align-items:stretch}.dashboard__controls{justify-content:flex-start;width:100%}.dashboard__export-btn{flex:auto;min-width:0}.dashboard__kpis,.dashboard__kpis--4{grid-template-columns:1fr}}.confirm-dialog__message{color:var(--text);margin:0 0 1.25rem;font-size:.9375rem;line-height:1.5}.confirm-dialog__actions{justify-content:flex-end;gap:.75rem;display:flex}@media (width<=400px){.confirm-dialog__actions{flex-direction:column-reverse}.confirm-dialog__actions .btn{width:100%}}.tx-summary{grid-template-columns:repeat(4,1fr);gap:1rem;display:grid}@media (width<=960px){.tx-summary{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.tx-summary{grid-template-columns:1fr}}.tx-toolbar{flex-direction:column;gap:.875rem;display:flex}.tx-toolbar__search-wrap{align-items:center;display:flex;position:relative}.tx-toolbar__search-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:.875rem}.tx-toolbar__search{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text-h);border-radius:10px;outline:none;padding:.625rem .875rem .625rem 2.5rem;font-family:inherit;font-size:.9375rem;transition:border-color .15s,box-shadow .15s}.tx-toolbar__search::placeholder{color:var(--text-muted)}.tx-toolbar__search:hover:not(:disabled){border-color:var(--accent-border)}.tx-toolbar__search:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.tx-toolbar__search:disabled{opacity:.6;cursor:not-allowed}.tx-toolbar__filters{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.75rem 1rem;display:flex}.tx-toolbar__types{flex-wrap:wrap;gap:.375rem;display:flex}.tx-toolbar__chip{border:1px solid var(--border);background:var(--surface-elevated);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:999px;padding:.375rem .875rem;font-family:inherit;font-size:.8125rem;font-weight:500;transition:background .15s,border-color .15s,color .15s}.tx-toolbar__chip:hover:not(:disabled):not(.tx-toolbar__chip--active){border-color:var(--accent-border);color:var(--text-h)}.tx-toolbar__chip--active{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent);font-weight:600}.tx-toolbar__chip:disabled{opacity:.5;cursor:not-allowed}.tx-toolbar__category-field{flex-direction:column;flex:200px;gap:.375rem;min-width:180px;max-width:280px;display:flex}.tx-toolbar__category-label{color:var(--text-muted);letter-spacing:.03em;text-transform:uppercase;font-size:.75rem;font-weight:600}.tx-toolbar__category-select{border:1px solid var(--border);background:var(--surface-elevated);width:100%;color:var(--text-h);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2 4.5l4 4 4-4' stroke='%2394a3b8' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;border-radius:10px;outline:none;padding:.5rem 2rem .5rem .75rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:border-color .15s,box-shadow .15s}.tx-toolbar__category-select:hover:not(:disabled){border-color:var(--accent-border)}.tx-toolbar__category-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.tx-toolbar__category-select:disabled{opacity:.6;cursor:not-allowed}@media (width<=640px){.tx-toolbar__filters{flex-direction:column;align-items:stretch}.tx-toolbar__category-field{width:100%;max-width:none}}.transactions-page{gap:var(--section-gap,2rem);flex-direction:column;max-width:1100px;margin:0 auto;display:flex}.transactions-page__intro{flex-direction:column;gap:.875rem;width:100%;display:flex;overflow:visible}.transactions-page__top,.transactions-page__top .page-header{width:100%}.transactions-page__period{justify-content:flex-start;width:100%;display:flex;overflow:visible}.transactions-page__list{min-width:0}.transactions-page__error{border:1px solid var(--expense-border);background:var(--expense-bg);color:var(--expense);border-radius:8px;padding:1rem 1.25rem;font-size:.9375rem}@media (width<=640px){.transactions-page{gap:1rem}.transactions-page__period{overflow:visible}}.change-password-form{flex-direction:column;gap:1rem;display:flex}.change-password-form__error{background:var(--expense-bg);border:1px solid var(--expense-border);color:var(--expense);border-radius:8px;padding:.75rem 1rem;font-size:.875rem}.change-password-form__actions{justify-content:flex-end;gap:.75rem;margin-top:.5rem;display:flex}.change-password-form__actions .auth-btn{width:auto;min-width:7.5rem}@media (width<=480px){.change-password-form__actions{flex-direction:column-reverse}.change-password-form__actions .auth-btn{width:100%}}.profile-avatar-section{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.profile-avatar-section__actions{flex-wrap:wrap;align-items:center;gap:.625rem;min-width:0;display:flex}.profile-avatar-section__input{display:none}@media (width<=480px){.profile-avatar-section{flex-direction:column;align-items:flex-start}.profile-avatar-section__actions{width:100%}.profile-avatar-section__actions .btn{flex:auto}}.profile-page{flex-direction:column;gap:1.5rem;max-width:640px;margin:0 auto;display:flex}.profile-form{flex-direction:column;gap:1rem;display:flex}.profile-card{flex-direction:column;gap:0;display:flex}.profile-subsection{border-top:1px solid var(--border);flex-direction:column;gap:.875rem;margin-top:1.125rem;padding-top:1.125rem;display:flex}[data-theme=dark] .profile-subsection{border-top-color:#ffffff0f}.profile-subsection__title{color:var(--text-muted);letter-spacing:.02em;text-transform:uppercase;font-size:.8125rem;font-weight:600}.profile-email{flex-direction:column;gap:.375rem;display:flex}.profile-email__label{color:var(--text-h);font-size:.875rem;font-weight:500}.profile-email__value{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:8px;margin:0;padding:.625rem .875rem;font-size:.9375rem;line-height:1.4}.profile-security{flex-direction:column;align-items:flex-start;gap:.75rem;display:flex}.profile-security__text{color:var(--text-muted);margin:0;font-size:.875rem;line-height:1.5}.profile-section{flex-direction:column;gap:1rem;display:flex}.profile-field{flex-direction:column;gap:.5rem;display:flex}.profile-field__label{color:var(--text-h);font-size:.875rem;font-weight:500}.profile-segmented{flex-wrap:wrap;gap:.5rem;display:flex}.profile-segmented__btn{border:1px solid var(--border);background:var(--surface-elevated);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:.4rem;padding:.5rem 1rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.profile-segmented__btn:hover:not(.profile-segmented__btn--active){background:var(--accent-bg);color:var(--text-h);border-color:var(--accent-border)}.profile-segmented__btn--active{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.profile-segmented__btn .icon{opacity:.85;width:14px;height:14px}.profile-details{flex-direction:column;gap:0;margin:0;display:flex}.profile-details__row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.8125rem 0;display:flex}.profile-details__row:last-child{border-bottom:none;padding-bottom:0}.profile-details__row:first-child{padding-top:0}.profile-details__row dt{color:var(--text-muted);font-size:.875rem;font-weight:500}.profile-details__row dd{color:var(--text-h);text-align:right;margin:0;font-size:.9rem;font-weight:500}.profile-details__badge--plan{background:var(--accent-bg);color:var(--accent);letter-spacing:.04em;text-transform:uppercase;border-radius:20px;padding:.15rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.profile-details__id{font-family:var(--mono);color:var(--text-muted)!important;font-size:.8rem!important;font-weight:400!important}.profile-footer{justify-content:flex-end;display:flex}@media (width<=480px){.profile-segmented{flex-direction:column}.profile-segmented__btn{justify-content:center}.profile-footer{justify-content:stretch}.profile-footer .auth-btn{width:100%}.profile-details__row{flex-direction:column;align-items:flex-start;gap:.25rem}.profile-details__row dd{text-align:left}}.billing-page{flex-direction:column;gap:1.5rem;max-width:640px;margin:0 auto;display:flex}.billing-page__error{border:1px solid var(--expense-border);background:var(--expense-bg);color:var(--expense);border-radius:12px;padding:1rem 1.25rem;font-size:.9375rem}.billing-card{flex-direction:column;gap:1.25rem;display:flex}.billing-card__header{flex-direction:column;gap:.25rem;display:flex}.billing-card__name{color:var(--text-h);margin:0;font-size:1.125rem;font-weight:600}.billing-card__price{color:var(--accent);margin:0;font-size:1.5rem;font-weight:700}.billing-card__price-period{color:var(--text-muted);font-size:.9375rem;font-weight:500}.billing-card__status{background:var(--accent-bg);border:1px solid var(--accent-border);color:var(--text-h);border-radius:10px;margin:0;padding:.875rem 1rem;font-size:.9375rem;line-height:1.5}.billing-card__status--warning{background:var(--expense-bg);border-color:var(--expense-border);color:var(--expense)}.billing-details{flex-direction:column;gap:0;display:flex}.billing-details__row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:1rem;padding:.75rem 0;display:flex}.billing-details__row:last-child{border-bottom:none;padding-bottom:0}.billing-details__row:first-child{padding-top:0}.billing-details__label{color:var(--text-muted);flex-shrink:0;margin:0;font-size:.875rem}.billing-details__value{color:var(--text-h);text-align:right;margin:0;font-size:.9375rem;font-weight:500}.billing-card__actions{justify-content:flex-end;padding-top:.25rem;display:flex}.billing-skeleton{pointer-events:none;flex-direction:column;gap:1rem;display:flex}.billing-skeleton__line{background:linear-gradient(90deg, var(--surface-elevated) 25%, var(--border) 50%, var(--surface-elevated) 75%);background-size:200% 100%;border-radius:6px;height:1rem;animation:1.2s ease-in-out infinite billing-skeleton-shimmer}.billing-skeleton__line--title{width:40%;height:1.5rem}.billing-skeleton__line--price{width:55%;height:2rem}.billing-skeleton__line--row{width:100%}@keyframes billing-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (width<=480px){.billing-card__actions .btn{width:100%}}.close-account-modal{flex-direction:column;gap:.875rem;display:flex}.close-account-modal__message{color:var(--text-muted);margin:0;font-size:.875rem;line-height:1.55}.close-account-modal__actions{justify-content:flex-end;gap:.75rem;margin-top:.5rem;display:flex}@media (width<=480px){.close-account-modal__actions{flex-direction:column-reverse}.close-account-modal__actions .btn{width:100%}}.support-modal-form__subtitle{color:var(--text-muted);margin:-.25rem 0 1.125rem;font-size:.875rem;line-height:1.55}.support-modal-form{flex-direction:column;gap:1.25rem;display:flex}.support-modal-form__error{background:var(--expense-bg);border:1px solid var(--expense-border);color:var(--expense);border-radius:8px;padding:.75rem 1rem;font-size:.875rem}.support-modal-form .auth-input{gap:.5rem}.support-modal-form__field{flex-direction:column;gap:.5rem;display:flex}.support-modal-form__label{color:var(--text-h);align-items:center;gap:.4375rem;font-size:.875rem;font-weight:500;display:inline-flex}.support-modal-form__label-icon{color:var(--text-muted);flex-shrink:0;align-items:center;display:inline-flex}.support-modal-form__textarea-wrap{position:relative}.support-modal-form__textarea{border:1px solid var(--border);background:var(--surface-elevated);width:100%;min-height:6.75rem;max-height:11rem;color:var(--text-h);resize:vertical;border-radius:8px;outline:none;padding:.6875rem .875rem;font-family:inherit;font-size:.9375rem;line-height:1.55;transition:border-color .15s,box-shadow .15s}[data-theme=dark] .support-modal-form__textarea{background:var(--surface);border-color:#ffffff14}.support-modal-form__textarea::placeholder{color:var(--text-muted)}.support-modal-form__textarea:hover:not(:focus):not(:disabled){border-color:var(--accent-border)}.support-modal-form__textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.support-modal-form__textarea:disabled{opacity:.6;cursor:not-allowed}.support-modal-form__field--error .support-modal-form__textarea{border-color:var(--expense)}.support-modal-form__field--error .support-modal-form__textarea:focus{border-color:var(--expense);box-shadow:0 0 0 3px var(--expense-bg)}.support-modal-form__field-error{color:var(--expense);margin:0;font-size:.8125rem}.support-modal-form__counter-row{justify-content:flex-end;display:flex}.support-modal-form__counter{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.75rem}.support-modal-form__footer{border-top:1px solid var(--border);flex-direction:column;gap:.875rem;padding-top:.25rem;display:flex}[data-theme=dark] .support-modal-form__footer{border-top-color:#ffffff0f}.support-modal-form__hint{color:var(--text-muted);margin:0;font-size:.8125rem;line-height:1.45}.support-modal-form__actions{justify-content:flex-end;align-items:center;gap:.625rem;display:flex}.support-modal-form__actions .auth-btn--ghost{color:var(--text-muted);border-color:#0000}.support-modal-form__actions .auth-btn--ghost:hover:not(:disabled){color:var(--text-h);background:var(--surface-elevated);border-color:var(--border)}.support-modal-form__actions .auth-btn{width:auto;min-width:7.5rem}.support-modal-form__actions .auth-btn--primary{box-shadow:0 1px 2px #8b5cf633}@media (width<=480px){.support-modal-form__subtitle{margin-top:0}.support-modal-form__actions{flex-direction:column-reverse;width:100%}.support-modal-form__actions .auth-btn{width:100%}}.settings-page{flex-direction:column;gap:1.5rem;max-width:640px;margin:0 auto;display:flex}.settings-content{flex-direction:column;gap:1rem;display:flex}.settings-plan{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.settings-plan__text{color:var(--text-muted);margin:0;font-size:.9375rem;line-height:1.5}.settings-plan__text strong{color:var(--text-h);font-weight:600}.settings-plan__text--loading{color:var(--text-muted)}.settings-plan__actions{flex-wrap:wrap;gap:.5rem;display:flex}.settings-plan__link{text-decoration:none}.settings-support{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.settings-support__text{color:var(--text-muted);margin:0;font-size:.9rem}.settings-support__btn{border:1px solid var(--border);background:var(--surface-elevated);color:var(--text-h);white-space:nowrap;cursor:pointer;border-radius:8px;align-items:center;padding:.5rem 1.125rem;font-family:inherit;font-size:.875rem;font-weight:500;text-decoration:none;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.settings-support__btn:hover{border-color:var(--accent-border);background:var(--accent-bg);color:var(--accent)}.settings-account__menu{flex-direction:column;display:flex}.settings-account__item{border:none;border-bottom:1px solid var(--border);width:100%;color:var(--text-h);text-align:left;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:.75rem;padding:.875rem 0;font-family:inherit;font-size:.9375rem;font-weight:500;text-decoration:none;transition:color .15s;display:flex}.settings-account__item:first-child{padding-top:0}.settings-account__item:last-child{border-bottom:none;padding-bottom:0}.settings-account__item:hover{color:var(--accent)}.settings-account__item svg{color:var(--text-muted);flex-shrink:0}@media (width<=480px){.settings-support__btn{text-align:center;width:100%}.settings-plan__actions,.settings-plan__link,.settings-plan__link .btn{width:100%}}.cat-modal-backdrop{z-index:400;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000008c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.cat-modal{background:var(--surface);border:1px solid var(--border);width:100%;max-width:480px;max-height:90dvh;box-shadow:var(--shadow-lg);scrollbar-width:thin;scrollbar-color:var(--border) transparent;border-radius:14px;flex-direction:column;display:flex;overflow-y:auto}.cat-modal__header{justify-content:space-between;align-items:center;padding:1.25rem 1.375rem 0;display:flex}.cat-modal__title{color:var(--text-h);margin:0;font-size:1.0625rem;font-weight:600}.cat-modal__close{width:2rem;height:2rem;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.cat-modal__close:hover{background:var(--surface-elevated);color:var(--text-h)}.cat-modal__form{flex-direction:column;gap:1.125rem;padding:1.25rem 1.375rem 1.375rem;display:flex}.cat-modal__field{flex-direction:column;gap:.5rem;display:flex}.cat-modal__label{color:var(--text-h);font-size:.875rem;font-weight:500}.cat-modal__input{border:1px solid var(--border);background:var(--surface-elevated);width:100%;color:var(--text-h);border-radius:8px;outline:none;padding:.625rem .875rem;font-family:inherit;font-size:.9375rem;transition:border-color .15s,box-shadow .15s}.cat-modal__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.cat-modal__input--error{border-color:var(--expense)}.cat-modal__field-error{color:var(--expense);font-size:.8125rem}.cat-modal__type-row{gap:.5rem;display:flex}.cat-modal__type-btn{border:1px solid var(--border);background:var(--surface-elevated);color:var(--text);cursor:pointer;border-radius:8px;flex:1;padding:.5rem .75rem;font-family:inherit;font-size:.9rem;font-weight:500;transition:background .15s,border-color .15s,color .15s}.cat-modal__type-btn--income.cat-modal__type-btn--active{background:var(--income-bg);border-color:var(--income-border);color:var(--income)}.cat-modal__type-btn--expense.cat-modal__type-btn--active{background:var(--expense-bg);border-color:var(--expense-border);color:var(--expense)}.cat-modal__type-btn:not(.cat-modal__type-btn--active):hover{background:var(--surface);border-color:var(--accent-border);color:var(--text-h)}.cat-modal__icons{grid-template-columns:repeat(6,1fr);gap:.375rem;display:grid}.cat-modal__icon-btn{aspect-ratio:1;border:1px solid var(--border);background:var(--surface-elevated);width:100%;color:var(--text-muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;transition:background .15s,border-color .15s,color .15s,transform .1s;display:flex}.cat-modal__icon-btn:hover{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.cat-modal__icon-btn--active{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}.cat-modal__icon-btn:active{transform:scale(.92)}.cat-modal__colors{flex-wrap:wrap;gap:.5rem;display:flex}.cat-modal__color-btn{cursor:pointer;border:2px solid #0000;border-radius:50%;outline:none;width:2rem;height:2rem;transition:transform .15s,box-shadow .15s,border-color .15s}.cat-modal__color-btn:hover{transform:scale(1.15)}.cat-modal__color-btn--active{border-color:var(--text-h);box-shadow:0 0 0 2px var(--surface), 0 0 0 4px currentColor;transform:scale(1.15)}.cat-modal__footer{justify-content:flex-end;gap:.625rem;padding-top:.375rem;display:flex}.categories-page{gap:var(--section-gap,2rem);flex-direction:column;max-width:860px;margin:0 auto;display:flex}.categories-page__error{background:var(--expense-bg);border:1px solid var(--expense-border);color:var(--expense);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.875rem 1.125rem;font-size:.9rem;display:flex}.categories-page__error p{flex:1;margin:0}.categories-page__tabs{border-bottom:1px solid var(--border);gap:.375rem;display:flex}.categories-page__tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.5rem 1rem;font-family:inherit;font-size:.9rem;font-weight:500;transition:color .15s,border-color .15s}.categories-page__tab:hover{color:var(--text-h)}.categories-page__tab--active{color:var(--accent);border-bottom-color:var(--accent)}.categories-page__groups{flex-direction:column;gap:1.5rem;display:flex}.cat-section-header{border-bottom:1px solid var(--border);align-items:center;gap:.5rem;margin-bottom:.625rem;padding:.375rem 0;display:flex}.cat-section-header__label{text-transform:uppercase;letter-spacing:.06em;font-size:.8125rem;font-weight:600}.cat-section-header--income .cat-section-header__label{color:var(--income)}.cat-section-header--expense .cat-section-header__label{color:var(--expense)}.cat-section-header__count{color:var(--text-muted);background:var(--surface-elevated);border:1px solid var(--border);border-radius:10px;padding:.0625rem .5rem;font-size:.8125rem;line-height:1.5}.categories-page__list{flex-direction:column;gap:.5rem;display:flex}.cat-item{background:var(--surface);border:1px solid var(--border);border-radius:12px;align-items:center;gap:1rem;padding:.875rem 1rem;transition:border-color .15s,background .15s;display:flex}.cat-item:hover{border-color:var(--accent-border)}.cat-item--skeleton{background:linear-gradient(90deg, var(--surface-elevated) 25%, var(--border) 50%, var(--surface-elevated) 75%);background-size:200% 100%;border-color:#0000;height:68px;animation:1.4s infinite shimmer}.cat-item__icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;display:flex}.cat-item__info{flex-direction:column;flex:1;gap:.3rem;min-width:0;display:flex}.cat-item__name{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;font-size:.9375rem;font-weight:500;overflow:hidden}.cat-item__badges{flex-wrap:wrap;gap:.375rem;display:flex}.cat-item__type-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:4px;padding:.125rem .4375rem;font-size:.6875rem;font-weight:600}.cat-item__type-badge--income{background:var(--income-bg);color:var(--income)}.cat-item__type-badge--expense{background:var(--expense-bg);color:var(--expense)}.cat-item__default-badge{background:var(--surface-elevated);border:1px solid var(--border);color:var(--text-muted);border-radius:4px;padding:.125rem .4375rem;font-size:.6875rem;font-weight:500}.cat-item__actions{flex-shrink:0;align-items:center;gap:.25rem;display:flex}.cat-item__locked{opacity:.4;cursor:default;padding:0 .25rem;font-size:.875rem}.categories-page__empty{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;align-items:center;gap:.625rem;padding:3rem 1rem;display:flex}.categories-page__empty-icon{margin-bottom:.25rem;font-size:2.5rem;line-height:1}.categories-page__empty-title{color:var(--text-h);margin:0;font-size:1.0625rem;font-weight:600}.categories-page__empty-desc{color:var(--text-muted);max-width:320px;margin:0 0 .5rem;font-size:.9rem}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (width<=600px){.cat-item{flex-wrap:wrap;gap:.75rem}.cat-item__actions{justify-content:flex-end;width:100%}.categories-page__tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;overflow-x:auto}.categories-page__tabs::-webkit-scrollbar{display:none}}.pro-blocked{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius,24px);box-shadow:var(--shadow-card,var(--shadow-sm));flex-direction:column;align-items:center;gap:.75rem;padding:3rem 2rem;display:flex}.pro-blocked--compact{border:1px dashed var(--accent-border);background:var(--accent-bg);color:var(--text-muted);cursor:pointer;border-radius:10px;flex-direction:row;align-items:center;gap:.5rem;padding:.5rem .875rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:border-color .15s,background .15s;display:inline-flex}.pro-blocked--compact:hover{border-color:var(--accent);color:var(--text-h);background:#8b5cf614}.pro-blocked__icon{background:var(--accent-bg);border:1px solid var(--accent-border);width:4.5rem;height:4.5rem;color:var(--accent);border-radius:16px;justify-content:center;align-items:center;display:flex}.pro-blocked__badge-row{margin-top:-.25rem}.pro-blocked__title{color:var(--text-h);letter-spacing:-.01em;margin:0;font-size:1.25rem;font-weight:600}.pro-blocked__desc{color:var(--text-muted);max-width:420px;margin:0;font-size:.9375rem;line-height:1.55}.pro-blocked__actions{flex-direction:column;align-items:center;gap:.75rem;margin-top:.5rem;display:flex}.pro-blocked__link{color:var(--accent);font-size:.875rem;text-decoration:none}.pro-blocked__link:hover{text-decoration:underline}.feature-gate--locked{opacity:.75;position:relative;cursor:pointer!important}.feature-gate--locked:hover{opacity:.9}.plans-page{gap:var(--section-gap,2rem);flex-direction:column;max-width:800px;margin:0 auto;display:flex}.plans-page__error{border:1px solid var(--expense-border);background:var(--expense-bg);color:var(--expense);border-radius:12px;padding:1rem 1.25rem;font-size:.9375rem}.plans-page__grid{grid-template-columns:repeat(2,1fr);align-items:stretch;gap:1.5rem;display:grid}.plans-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius,24px);box-shadow:var(--shadow-card,var(--shadow-sm));flex-direction:column;gap:1.5rem;padding:2rem;display:flex;position:relative}[data-theme=dark] .plans-card{border-color:#ffffff0f}.plans-card--selectable{cursor:pointer;transition:border-color .25s,box-shadow .25s,transform .2s,background-color .25s}@media (hover:hover) and (pointer:fine){.plans-card--selectable:not(.plans-card--selected):hover{box-shadow:var(--shadow-md);border-color:#8b5cf638;transform:translateY(-1px)}}.plans-card--selectable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.plans-card--selected{box-shadow:0 0 0 1px #8b5cf633,0 8px 32px #8b5cf62e;border-color:var(--accent)!important}[data-theme=dark] .plans-card--selected{box-shadow:0 0 0 1px #8b5cf647,0 8px 32px #8b5cf638,0 0 24px #8b5cf614}.plans-card--pro-offering.plans-card--selected{background:linear-gradient(180deg, #8b5cf60f 0%, var(--surface) 45%)}.plans-card__badges{flex-wrap:wrap;gap:.5rem;min-height:1.625rem;display:flex}.plans-card__badge-placeholder{height:1.625rem;display:block}.plans-card__badge{letter-spacing:.05em;text-transform:uppercase;border-radius:999px;align-items:center;padding:.25rem .75rem;font-size:.6875rem;font-weight:600;line-height:1;display:inline-flex}.plans-card__badge--current{background:var(--accent-bg);color:var(--accent);border:1px solid var(--accent-border)}.plans-card__badge--popular{color:var(--accent);background:#8b5cf626;border:1px solid #8b5cf659}.plans-card__header{flex-direction:column;gap:.5rem;display:flex}.plans-card__name{color:var(--text-h);letter-spacing:-.02em;margin:0;font-size:1.5rem;font-weight:600}.plans-card__price{font-family:var(--heading);color:var(--text-h);letter-spacing:-.04em;margin:0;font-size:2.25rem;font-weight:700;line-height:1}.plans-card__price-period{letter-spacing:0;color:var(--text-muted);font-size:1rem;font-weight:500}.plans-card__description{color:var(--text-muted);margin:0;font-size:.9375rem;line-height:1.5}.plans-card__features{flex-direction:column;flex:1;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.plans-card__feature{color:var(--text);align-items:flex-start;gap:.625rem;font-size:.875rem;line-height:1.45;display:flex}.plans-card__feature:before{content:"";background:var(--accent);opacity:.7;border-radius:50%;flex-shrink:0;width:.4375rem;height:.4375rem;margin-top:.375rem}.plans-card--pro .plans-card__feature:before{opacity:1}.plans-card__action{flex-direction:column;gap:.5rem;margin-top:auto;padding-top:.25rem;display:flex}.plans-card__action .btn{width:100%}.plans-card__hint{color:var(--text-muted);text-align:center;margin:0;font-size:.75rem;line-height:1.45}.plans-card__hint--subtle{opacity:.85;font-size:.6875rem}.plans-card__status{background:var(--accent-bg);border:1px solid var(--accent-border);color:var(--text-h);border-radius:10px;margin:0;padding:.75rem .875rem;font-size:.8125rem;line-height:1.45}.plans-card__status--warning{background:var(--expense-bg);border-color:var(--expense-border);color:var(--expense)}.plans-card--skeleton{background:linear-gradient(90deg, var(--surface) 0%, var(--surface-elevated) 50%, var(--surface) 100%);background-size:200% 100%;min-height:460px;animation:1.2s ease-in-out infinite shimmer}.plans-page__empty{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius,24px);flex-direction:column;align-items:center;gap:.875rem;padding:3.5rem 1.5rem;display:flex}.plans-page__empty-title{color:var(--text-h);margin:0;font-size:1.125rem;font-weight:600}.plans-page__empty-desc{color:var(--text-muted);max-width:360px;margin:0;font-size:.9375rem;line-height:1.5}@media (width<=720px){.plans-page__grid{grid-template-columns:1fr}}@media (width<=480px){.plans-card{padding:1.5rem}}.goal-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:18px;flex-direction:row;transition:box-shadow .2s,border-color .2s,transform .15s;display:flex;position:relative;overflow:hidden}[data-theme=dark] .goal-card{box-shadow:var(--shadow-card,var(--shadow-sm));border-color:#ffffff0f}.goal-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.goal-card--completed{opacity:.7}.goal-card__stripe{background:var(--goal-color,var(--accent));border-radius:0;flex-shrink:0;align-self:stretch;width:4px}.goal-card__body{flex-direction:column;flex:1;gap:.875rem;min-width:0;padding:1.25rem 1.375rem;display:flex}.goal-card__top{align-items:flex-start;gap:1rem;display:flex}.goal-card__icon{border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:3.25rem;height:3.25rem;display:flex}.goal-card__meta{flex-direction:column;flex:1;gap:.3rem;min-width:0;display:flex}.goal-card__name-row{flex-wrap:wrap;align-items:center;gap:.625rem;display:flex}.goal-card__name{color:var(--text-h);letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;max-width:100%;margin:0;font-size:1.0625rem;font-weight:600;overflow:hidden}.goal-card__badge-completed{letter-spacing:.05em;text-transform:uppercase;background:var(--income-bg);color:var(--income);border:1px solid var(--income-border);white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;padding:.2rem .6rem;font-size:.6875rem;font-weight:600;display:inline-flex}.goal-card__sub-row{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.goal-card__amount-inline{font-size:.875rem;font-weight:600;font-family:var(--heading)}.goal-card__amount-inline--target{color:var(--text-muted);font-weight:500}.goal-card__amount-sep{color:var(--text-muted);font-size:.8125rem}.goal-card__deadline-inline{color:var(--text-muted);white-space:nowrap;font-size:.8125rem}.goal-card__actions{flex-shrink:0;align-items:center;gap:.375rem;padding-top:.125rem;display:flex}.goal-card__add-btn{cursor:pointer;white-space:nowrap;opacity:.75;background:0 0;border:1px solid;border-radius:6px;align-items:center;gap:.3rem;padding:.3rem .625rem;font-family:inherit;font-size:.75rem;font-weight:600;transition:background .15s,opacity .15s,transform .1s;display:inline-flex}.goal-card__add-btn:hover{opacity:1;background:color-mix(in srgb, currentColor 12%, transparent)}.goal-card__add-btn:active{transform:scale(.95)}.goal-card__progress-row{align-items:center;gap:.75rem;display:flex}.goal-card__progress-bar{background:var(--surface-elevated);border-radius:999px;flex:1;height:10px;overflow:hidden}[data-theme=dark] .goal-card__progress-bar{background:#ffffff12}.goal-card__progress-fill{border-radius:999px;height:100%;transition:width .5s cubic-bezier(.4,0,.2,1);position:relative}.goal-card__progress-fill:after{content:"";border-radius:inherit;background:linear-gradient(90deg,#0000 0%,#ffffff2e 50%,#0000 100%);position:absolute;inset:0}.goal-card__percent{text-align:right;min-width:3rem;font-size:.875rem;font-weight:700;font-family:var(--heading);letter-spacing:-.02em;flex-shrink:0}.goal-card__amounts{border-top:1px solid var(--border);grid-template-columns:1fr 1fr 1fr;gap:.5rem;padding-top:.625rem;display:grid}[data-theme=dark] .goal-card__amounts{border-color:#ffffff0f}.goal-card__amount-item{flex-direction:column;gap:.2rem;display:flex}.goal-card__amount-item--center{text-align:center;align-items:center}.goal-card__amount-item--right{text-align:right;align-items:flex-end}.goal-card__amount-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0;font-size:.6875rem;font-weight:500}.goal-card__amount-value{color:var(--text-h);font-size:.9375rem;font-weight:600;font-family:var(--heading);letter-spacing:-.015em;margin:0}.goal-card__amount-value--muted{color:var(--text-muted);font-weight:500}@media (width<=540px){.goal-card__body{gap:.75rem;padding:1rem 1.125rem}.goal-card__icon{border-radius:12px;width:2.75rem;height:2.75rem}.goal-card__name{font-size:.9375rem}.goal-card__progress-bar{height:8px}.goal-card__amount-value{font-size:.875rem}.goal-card__deadline-inline{display:none}}.date-picker{width:100%;position:relative}.date-picker__trigger{text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.date-picker__trigger:disabled{opacity:.6;cursor:not-allowed}.date-picker__value{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.date-picker__value--placeholder{color:var(--text-muted)}.date-picker__icon{color:var(--text-muted);flex-shrink:0;align-items:center;transition:color .15s;display:flex}.date-picker__trigger:hover:not(:disabled) .date-picker__icon,.date-picker__trigger--open .date-picker__icon{color:var(--accent)}.date-picker__dropdown{background:var(--surface-elevated);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:10px;padding:.75rem;animation:.14s cubic-bezier(.16,1,.3,1) both date-picker-enter}@keyframes date-picker-enter{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.date-picker__header{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.date-picker__month{text-align:center;color:var(--text-h);letter-spacing:-.01em;flex:1;font-size:.9375rem;font-weight:600}.date-picker__nav{width:2rem;height:2rem;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.date-picker__nav:hover{background:var(--accent-bg);color:var(--accent)}.date-picker__weekdays{grid-template-columns:repeat(7,1fr);gap:.125rem;margin-bottom:.375rem;display:grid}.date-picker__weekday{text-align:center;color:var(--text-muted);letter-spacing:.02em;padding:.25rem 0;font-size:.6875rem;font-weight:600}.date-picker__grid{grid-template-columns:repeat(7,1fr);gap:.125rem;display:grid}.date-picker__day{aspect-ratio:1;width:100%;min-height:2.125rem;color:var(--text-h);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;font-family:inherit;font-size:.875rem;font-weight:500;transition:background .12s,color .12s,border-color .12s;display:flex}.date-picker__day:hover:not(.date-picker__day--selected){background:var(--accent-bg);color:var(--accent)}.date-picker__day--selected{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.date-picker__day--today:not(.date-picker__day--selected){border-color:var(--accent-border);color:var(--accent)}.date-picker__day--outside:not(.date-picker__day--selected){color:var(--text-muted);opacity:.55}.date-picker__divider{background:var(--border);height:1px;margin:.625rem 0 .5rem}.date-picker__clear{width:100%;color:var(--text-muted);cursor:pointer;text-align:center;background:0 0;border:none;border-radius:8px;padding:.5rem .75rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:background .12s,color .12s}.date-picker__clear:hover{background:var(--accent-bg);color:var(--accent)}@media (width<=480px){.date-picker__dropdown{padding:.625rem}.date-picker__day{min-height:2rem;font-size:.8125rem}}.goal-modal-backdrop{z-index:400;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000008c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.goal-modal{background:var(--surface);border:1px solid var(--border);width:100%;max-width:520px;max-height:90dvh;box-shadow:var(--shadow-lg);scrollbar-width:thin;scrollbar-color:var(--border) transparent;border-radius:14px;flex-direction:column;animation:.2s ease-out goal-modal-enter;display:flex;overflow-y:auto}@keyframes goal-modal-enter{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.goal-modal__header{justify-content:space-between;align-items:center;padding:1.25rem 1.375rem 0;display:flex}.goal-modal__title{color:var(--text-h);margin:0;font-size:1.0625rem;font-weight:600}.goal-modal__close{width:2rem;height:2rem;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.goal-modal__close:hover{background:var(--surface-elevated);color:var(--text-h)}.goal-modal__form{flex-direction:column;gap:1.125rem;padding:1.25rem 1.375rem 1.375rem;display:flex}.goal-modal__row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.goal-modal__field{flex-direction:column;gap:.5rem;display:flex}.goal-modal__label{color:var(--text-h);font-size:.875rem;font-weight:500}.goal-modal__input{border:1px solid var(--border);background:var(--surface-elevated);width:100%;color:var(--text-h);border-radius:8px;outline:none;padding:.625rem .875rem;font-family:inherit;font-size:.9375rem;transition:border-color .15s,box-shadow .15s}.goal-modal__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.goal-modal__input--error{border-color:var(--expense)}.goal-modal__field-error{color:var(--expense);margin:0;font-size:.8125rem}.goal-modal__icons{grid-template-columns:repeat(8,1fr);gap:.375rem;display:grid}.goal-modal__icon-btn{aspect-ratio:1;border:1px solid var(--border);background:var(--surface-elevated);width:100%;color:var(--text-muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;transition:background .15s,border-color .15s,color .15s,transform .1s;display:flex}.goal-modal__icon-btn:hover{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.goal-modal__icon-btn--active{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}.goal-modal__icon-btn:active{transform:scale(.92)}.goal-modal__colors{flex-wrap:wrap;gap:.5rem;display:flex}.goal-modal__color-btn{cursor:pointer;border:2px solid #0000;border-radius:50%;outline:none;width:2rem;height:2rem;transition:transform .15s,box-shadow .15s}.goal-modal__color-btn:hover{transform:scale(1.15)}.goal-modal__color-btn--active{border-color:var(--text-h);box-shadow:0 0 0 2px var(--surface), 0 0 0 4px currentColor;transform:scale(1.15)}.goal-modal__footer{justify-content:flex-end;gap:.625rem;padding-top:.375rem;display:flex}@media (width<=480px){.goal-modal__row{grid-template-columns:1fr}.goal-modal__icons{grid-template-columns:repeat(6,1fr)}.goal-modal__footer{flex-direction:column-reverse}.goal-modal__footer .btn{width:100%}}.add-amount-backdrop{z-index:400;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000008c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.add-amount-modal{background:var(--surface);border:1px solid var(--border);width:100%;max-width:440px;box-shadow:var(--shadow-lg);border-radius:14px;flex-direction:column;animation:.2s ease-out add-amount-enter;display:flex}@keyframes add-amount-enter{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.add-amount-modal__header{justify-content:space-between;align-items:center;padding:1.25rem 1.375rem 0;display:flex}.add-amount-modal__title{color:var(--text-h);margin:0;font-size:1.0625rem;font-weight:600}.add-amount-modal__close{width:2rem;height:2rem;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.add-amount-modal__close:hover{background:var(--surface-elevated);color:var(--text-h)}.add-amount-modal__form{flex-direction:column;gap:1.125rem;padding:1.25rem 1.375rem 1.375rem;display:flex}.add-amount-modal__goal-info{background:var(--surface-elevated);border:1px solid var(--border);border-radius:10px;align-items:flex-start;gap:.875rem;padding:1rem;display:flex}[data-theme=dark] .add-amount-modal__goal-info{border-color:#ffffff0f}.add-amount-modal__goal-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;display:flex}.add-amount-modal__goal-details{flex-direction:column;flex:1;gap:.375rem;min-width:0;display:flex}.add-amount-modal__goal-name{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.9375rem;font-weight:600;overflow:hidden}.add-amount-modal__goal-stats{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.add-amount-modal__stat-label{color:var(--text-muted);margin-right:.25rem;font-size:.75rem}.add-amount-modal__stat-value{color:var(--text-h);font-size:.8125rem;font-weight:600;font-family:var(--heading);letter-spacing:-.01em}.add-amount-modal__stat-value--muted{color:var(--text-muted);font-weight:500}.add-amount-modal__stat-sep{color:var(--border);font-size:.75rem}.add-amount-modal__progress-wrap{align-items:center;gap:.75rem;display:flex}.add-amount-modal__progress-bar{background:var(--surface-elevated);border-radius:999px;flex:1;height:8px;overflow:hidden}[data-theme=dark] .add-amount-modal__progress-bar{background:#ffffff12}.add-amount-modal__progress-fill{border-radius:999px;height:100%;transition:width .4s}.add-amount-modal__progress-pct{text-align:right;min-width:2.75rem;font-size:.875rem;font-weight:700;font-family:var(--heading);flex-shrink:0}.add-amount-modal__field{flex-direction:column;gap:.5rem;display:flex}.add-amount-modal__label{color:var(--text-h);font-size:.875rem;font-weight:500}.add-amount-modal__input{border:1px solid var(--border);background:var(--surface-elevated);width:100%;color:var(--text-h);font-family:var(--heading);letter-spacing:-.02em;border-radius:8px;outline:none;padding:.75rem .875rem;font-size:1.25rem;font-weight:600;transition:border-color .15s,box-shadow .15s}.add-amount-modal__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.add-amount-modal__input--error{border-color:var(--expense)}.add-amount-modal__field-error{color:var(--expense);margin:0;font-size:.8125rem}.add-amount-modal__hint{border-radius:8px;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.875rem;font-weight:500;display:flex}.add-amount-modal__hint--success{background:var(--income-bg);color:var(--income);border:1px solid var(--income-border)}.add-amount-modal__footer{justify-content:flex-end;gap:.625rem;padding-top:.25rem;display:flex}@media (width<=480px){.add-amount-modal__footer{flex-direction:column-reverse}.add-amount-modal__footer .btn{width:100%}.add-amount-modal__goal-stats{flex-direction:column;align-items:flex-start;gap:.25rem}.add-amount-modal__stat-sep{display:none}}.goals-page{gap:var(--section-gap,2rem);flex-direction:column;max-width:1040px;margin:0 auto;display:flex}.goals-page__error{border:1px solid var(--expense-border);background:var(--expense-bg);color:var(--expense);border-radius:12px;padding:1rem 1.25rem;font-size:.9375rem}.goals-summary{grid-template-columns:repeat(6,1fr);gap:1.25rem;display:grid}.goals-summary>.stat-card:first-child,.goals-summary>.stat-card:nth-child(2),.goals-summary>.stat-card:nth-child(3){grid-column:span 2}.goals-summary>.stat-card:nth-child(4),.goals-summary>.stat-card:nth-child(5){grid-column:span 3}.goals-section{flex-direction:column;gap:1.125rem;display:flex}.goals-section__toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.goals-section__title{color:var(--text-h);letter-spacing:-.015em;margin:0;font-size:1.0625rem;font-weight:600}.goals-section__controls{align-items:center;gap:.75rem;display:flex}.goals-search{border:1px solid var(--border);background:var(--surface);color:var(--text-h);border-radius:10px;outline:none;width:220px;padding:.5625rem .875rem;font-family:inherit;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.goals-search::placeholder{color:var(--text-muted)}.goals-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}[data-theme=dark] .goals-search{background:var(--surface-elevated)}.goals-filter-tabs{background:var(--surface);border:1px solid var(--border);border-radius:10px;gap:.25rem;padding:.25rem;display:flex}[data-theme=dark] .goals-filter-tabs{background:var(--surface-elevated);border-color:#ffffff0f}.goals-filter-tab{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:7px;padding:.4375rem .9375rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:background .15s,color .15s}.goals-filter-tab:hover:not(.goals-filter-tab--active){color:var(--text-h);background:var(--surface)}.goals-filter-tab--active{background:var(--accent-bg);color:var(--accent);font-weight:600}.goals-list{flex-direction:column;gap:.75rem;display:flex}.goals-section .pagination{padding-top:.5rem}.goals-list--skeleton{pointer-events:none}.goals-list__skeleton-row{background:linear-gradient(90deg, var(--surface) 0%, var(--surface-elevated) 50%, var(--surface) 100%);background-size:200% 100%;border-radius:18px;height:158px;animation:1.4s ease-in-out infinite shimmer}.goals-list__skeleton-row:nth-child(2){animation-delay:.15s}.goals-list__skeleton-row:nth-child(3){animation-delay:.3s}.goals-empty{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius,24px);flex-direction:column;align-items:center;gap:1rem;padding:4rem 2rem;display:flex}[data-theme=dark] .goals-empty{border-color:#ffffff0f}.goals-empty--filtered{padding:3rem 2rem}.goals-empty__visual{background:var(--accent-bg);width:5rem;height:5rem;color:var(--accent);border:1px solid #8b5cf633;border-radius:20px;justify-content:center;align-items:center;margin-bottom:.25rem;display:flex}.goals-empty__title{color:var(--text-h);letter-spacing:-.01em;margin:0;font-size:1.125rem;font-weight:600}.goals-empty__desc{color:var(--text-muted);max-width:360px;margin:0;font-size:.9375rem;line-height:1.55}@media (width<=900px){.goals-summary{grid-template-columns:repeat(4,1fr)}.goals-summary>.stat-card:first-child,.goals-summary>.stat-card:nth-child(2),.goals-summary>.stat-card:nth-child(3),.goals-summary>.stat-card:nth-child(4),.goals-summary>.stat-card:nth-child(5){grid-column:span 2}}@media (width<=600px){.goals-page{gap:1.5rem}.goals-summary{grid-template-columns:repeat(2,1fr);gap:.875rem}.goals-summary>.stat-card:first-child,.goals-summary>.stat-card:nth-child(2),.goals-summary>.stat-card:nth-child(3),.goals-summary>.stat-card:nth-child(4),.goals-summary>.stat-card:nth-child(5){grid-column:span 1}.goals-section__toolbar{flex-direction:column;align-items:stretch;gap:.75rem}.goals-section__controls{flex-direction:column;align-items:stretch;gap:.625rem}.goals-search,.goals-filter-tabs{width:100%}.goals-filter-tab{text-align:center;flex:1}}.rec-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:18px;flex-direction:row;transition:box-shadow .2s,transform .15s;display:flex;position:relative;overflow:hidden}[data-theme=dark] .rec-card{box-shadow:var(--shadow-card,var(--shadow-sm));border-color:#ffffff0f}.rec-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.rec-card--inactive{opacity:.62}.rec-card__stripe{background:var(--rec-color,var(--accent));flex-shrink:0;align-self:stretch;width:4px}.rec-card__body{flex:1;min-width:0;padding:1.25rem 1.375rem}.rec-card__top{align-items:flex-start;gap:1rem;display:flex}.rec-card__icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:3rem;height:3rem;display:flex}.rec-card__meta{flex-direction:column;flex:1;gap:.375rem;min-width:0;display:flex}.rec-card__title-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.rec-card__description{color:var(--text-h);letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;max-width:260px;margin:0;font-size:1rem;font-weight:600;overflow:hidden}.rec-card__type-badge{letter-spacing:.05em;text-transform:uppercase;border-radius:999px;flex-shrink:0;align-items:center;padding:.15rem .55rem;font-size:.6875rem;font-weight:600;display:inline-flex}.rec-card__type-badge--income{background:var(--income-bg);color:var(--income);border:1px solid var(--income-border)}.rec-card__type-badge--expense{background:var(--expense-bg);color:var(--expense);border:1px solid var(--expense-border)}.rec-card__status-badge{letter-spacing:.05em;text-transform:uppercase;background:var(--surface-elevated);color:var(--text-muted);border:1px solid var(--border);border-radius:999px;flex-shrink:0;align-items:center;padding:.15rem .55rem;font-size:.6875rem;font-weight:600;display:inline-flex}.rec-card__status-badge--active{background:var(--income-bg);color:var(--income);border-color:var(--income-border)}.rec-card__sub-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.rec-card__sub-row>*{color:var(--text-muted);font-size:.8125rem}.rec-card__category,.rec-card__freq{color:var(--text);font-weight:500}.rec-card__next:before{content:"·";color:var(--border);margin-right:.5rem}.rec-card__right{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.625rem;display:flex}.rec-card__amount{font-family:var(--heading);letter-spacing:-.02em;white-space:nowrap;margin:0;font-size:1.125rem;font-weight:700}.rec-card__amount--income{color:var(--income)}.rec-card__amount--expense{color:var(--expense)}.rec-card__actions{align-items:center;gap:.375rem;display:flex}.rec-card__toggle-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;padding:.3rem .625rem;font-family:inherit;font-size:.75rem;font-weight:600;transition:background .15s,color .15s,border-color .15s}.rec-card__toggle-btn:hover{background:var(--surface-elevated);color:var(--text-h);border-color:var(--accent-border)}.rec-card__toggle-btn--active{color:var(--expense);border-color:var(--expense-border)}.rec-card__toggle-btn--active:hover{background:var(--expense-bg)}@media (width<=680px){.rec-card__top{flex-wrap:wrap;gap:.75rem}.rec-card__right{flex-direction:row;justify-content:space-between;align-items:center;width:100%}.rec-card__description{max-width:200px}}@media (width<=480px){.rec-card__body{padding:1rem 1.125rem}.rec-card__description{max-width:150px;font-size:.9375rem}.rec-card__amount{font-size:1rem}}.rec-month-picker{z-index:20;position:relative}.rec-month-picker__trigger{border:1px solid var(--border);background:var(--surface);min-width:11.5rem;color:var(--text-h);cursor:pointer;border-radius:10px;align-items:center;gap:.5rem;padding:.5625rem .875rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:border-color .15s,box-shadow .15s,background .15s,color .15s;display:inline-flex}.rec-month-picker__trigger:hover,.rec-month-picker__trigger--open{border-color:var(--accent-border);background:var(--accent-bg);color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}[data-theme=dark] .rec-month-picker__trigger{background:var(--surface-elevated)}.rec-month-picker__icon{color:var(--text-muted);flex-shrink:0;align-items:center;display:flex}.rec-month-picker__trigger:hover .rec-month-picker__icon,.rec-month-picker__trigger--open .rec-month-picker__icon{color:var(--accent)}.rec-month-picker__label{text-align:left;white-space:nowrap;flex:1}.rec-month-picker__chevron{color:var(--text-muted);align-items:center;transition:transform .2s,color .15s;display:flex}.rec-month-picker__trigger--open .rec-month-picker__chevron{color:var(--accent);transform:rotate(180deg)}.rec-month-picker__dropdown{background:var(--surface-elevated);border:1px solid var(--border);width:17.5rem;box-shadow:var(--shadow-lg);border-radius:12px;padding:.75rem;animation:.14s cubic-bezier(.16,1,.3,1) both rec-month-picker-enter;position:absolute;top:calc(100% + .375rem);left:0}[data-theme=dark] .rec-month-picker__dropdown{background:var(--surface);border-color:#ffffff14}@keyframes rec-month-picker-enter{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.rec-month-picker__year-nav{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.rec-month-picker__year-btn{border:1px solid var(--border);width:2rem;height:2rem;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;font-size:1.125rem;line-height:1;transition:background .15s,color .15s,border-color .15s;display:flex}.rec-month-picker__year-btn:hover{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.rec-month-picker__year-label{color:var(--text-h);letter-spacing:-.01em;font-size:.9375rem;font-weight:600}.rec-month-picker__months{grid-template-columns:repeat(4,1fr);gap:.375rem;display:grid}.rec-month-picker__month{height:2.125rem;color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;font-family:inherit;font-size:.8125rem;font-weight:500;transition:background .12s,color .12s,border-color .12s;display:flex}.rec-month-picker__month:hover{background:var(--accent-bg);color:var(--accent)}.rec-month-picker__month--current{border-color:var(--accent-border);color:var(--accent)}.rec-month-picker__month--active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.rec-month-picker__month--active:hover{background:var(--accent);color:#fff}.rec-month-picker__footer{border-top:1px solid var(--border);margin-top:.75rem;padding-top:.75rem}.rec-month-picker__action{border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;background:0 0;border-radius:8px;padding:.5rem .75rem;font-family:inherit;font-size:.8125rem;font-weight:500;transition:background .15s,color .15s,border-color .15s}.rec-month-picker__action:hover,.rec-month-picker__action--active{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}@media (width<=640px){.rec-month-picker__trigger{width:100%;min-width:0}.rec-month-picker__dropdown{width:auto;max-width:100%;left:0;right:0}}.rec-modal-backdrop{z-index:400;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000008c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.rec-modal{background:var(--surface);border:1px solid var(--border);width:100%;max-width:520px;max-height:90dvh;box-shadow:var(--shadow-lg);scrollbar-width:thin;scrollbar-color:var(--border) transparent;border-radius:14px;flex-direction:column;animation:.2s ease-out rec-modal-enter;display:flex;overflow-y:auto}@keyframes rec-modal-enter{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.rec-modal__header{background:var(--surface);z-index:2;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;padding:1.125rem 1.375rem 0;display:flex;position:sticky;top:0}.rec-modal:has(form:not(:focus-within)) .rec-modal__header{border-bottom-color:var(--border)}.rec-modal__title{color:var(--text-h);margin:0;font-size:1.0625rem;font-weight:600}.rec-modal__close{width:2rem;height:2rem;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.rec-modal__close:hover{background:var(--surface-elevated);color:var(--text-h)}.rec-modal__form{flex-direction:column;gap:1rem;padding:1rem 1.375rem 1.25rem;display:flex}.rec-modal__row{grid-template-columns:1fr 1fr;gap:.875rem;display:grid}.rec-modal__field{flex-direction:column;gap:.4rem;display:flex}.rec-modal__field--inline{background:var(--surface-elevated);border:1px solid var(--border);border-radius:10px;flex-direction:row;justify-content:space-between;align-items:center;padding:.6875rem 1rem}.rec-modal__label{color:var(--text-h);font-size:.8125rem;font-weight:500}.rec-modal__label--inline{font-size:.9rem}.rec-modal__input{border:1px solid var(--border);background:var(--surface-elevated);width:100%;color:var(--text-h);border-radius:8px;outline:none;padding:.5625rem .875rem;font-family:inherit;font-size:.9375rem;transition:border-color .15s,box-shadow .15s}.rec-modal__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.rec-modal__input--error{border-color:var(--expense)}.rec-modal__select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;padding-right:2rem}.rec-modal__field-error{color:var(--expense);margin:0;font-size:.8125rem}.rec-modal__type-row{gap:.5rem;display:flex}.rec-modal__type-btn{border:1px solid var(--border);background:var(--surface-elevated);color:var(--text);cursor:pointer;border-radius:8px;flex:1;padding:.4375rem .75rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:background .15s,border-color .15s,color .15s}.rec-modal__type-btn--income.rec-modal__type-btn--active{background:var(--income-bg);border-color:var(--income-border);color:var(--income)}.rec-modal__type-btn--expense.rec-modal__type-btn--active{background:var(--expense-bg);border-color:var(--expense-border);color:var(--expense)}.rec-modal__type-btn:not(.rec-modal__type-btn--active):hover{background:var(--surface);border-color:var(--accent-border);color:var(--text-h)}.rec-modal__toggle{background:var(--border);cursor:pointer;border:none;border-radius:999px;flex-shrink:0;width:2.75rem;height:1.5rem;padding:0;transition:background .2s;position:relative}.rec-modal__toggle--on{background:var(--accent)}.rec-modal__toggle-knob{background:#fff;border-radius:50%;width:1.125rem;height:1.125rem;transition:transform .2s;display:block;position:absolute;top:.1875rem;left:.1875rem}.rec-modal__toggle--on .rec-modal__toggle-knob{transform:translate(1.25rem)}.rec-modal__cat-empty{border:1px dashed var(--border);background:var(--surface-elevated);color:var(--text-muted);border-radius:8px;justify-content:space-between;align-items:center;padding:.5625rem .875rem;font-size:.875rem;display:flex}.rec-modal__cat-link{color:var(--accent);white-space:nowrap;font-size:.8125rem;font-weight:500;text-decoration:none;transition:opacity .15s}.rec-modal__cat-link:hover{opacity:.75;text-decoration:underline}.rec-modal__cat-manage{color:var(--text-muted);align-self:flex-end;font-size:.75rem;text-decoration:none;transition:color .15s}.rec-modal__cat-manage:hover{color:var(--accent);text-decoration:underline}.rec-modal__icons-scroll{border:1px solid var(--border);background:var(--surface-elevated);scrollbar-width:thin;scrollbar-color:var(--border) transparent;border-radius:8px;max-height:160px;padding:.5rem;overflow-y:auto}.rec-modal__icons{grid-template-columns:repeat(8,1fr);gap:.3rem;display:grid}.rec-modal__icon-btn{aspect-ratio:1;width:100%;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;transition:background .15s,border-color .15s,color .15s,transform .1s;display:flex}.rec-modal__icon-btn:hover{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.rec-modal__icon-btn--active{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}.rec-modal__icon-btn:active{transform:scale(.9)}.rec-modal__colors{flex-wrap:wrap;gap:.5rem;display:flex}.rec-modal__color-btn{cursor:pointer;border:2px solid #0000;border-radius:50%;outline:none;width:1.875rem;height:1.875rem;transition:transform .15s,box-shadow .15s}.rec-modal__color-btn:hover{transform:scale(1.15)}.rec-modal__color-btn--active{border-color:var(--text-h);box-shadow:0 0 0 2px var(--surface), 0 0 0 4px currentColor;transform:scale(1.15)}.rec-modal__notice{background:var(--accent-bg);border:1px solid var(--accent-border);color:var(--text-muted);border-radius:8px;margin:0;padding:.625rem .75rem;font-size:.75rem;line-height:1.55}.rec-modal__footer{border-top:1px solid var(--border);justify-content:flex-end;gap:.625rem;margin-top:.25rem;padding-top:.5rem;display:flex}@media (width<=480px){.rec-modal__row{grid-template-columns:1fr}.rec-modal__icons{grid-template-columns:repeat(6,1fr)}.rec-modal__footer{flex-direction:column-reverse}.rec-modal__footer .btn{width:100%}}.rec-page{gap:var(--section-gap,2rem);flex-direction:column;max-width:1040px;margin:0 auto;display:flex}.rec-page__error{border:1px solid var(--expense-border);background:var(--expense-bg);color:var(--expense);border-radius:12px;padding:1rem 1.25rem;font-size:.9375rem}.rec-summary{grid-template-columns:repeat(4,1fr);gap:1.25rem;display:grid}.rec-info-banner{background:var(--surface);border:1px solid var(--border);border-radius:14px;align-items:flex-start;gap:1rem;padding:1.125rem 1.375rem;display:flex}[data-theme=dark] .rec-info-banner{background:linear-gradient(135deg, var(--surface) 0%, #8b5cf60f 100%);border-color:#8b5cf633}.rec-info-banner__icon{background:var(--accent-bg);width:2.5rem;height:2.5rem;color:var(--accent);border:1px solid var(--accent-border);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.rec-info-banner__title{color:var(--text-h);margin:0 0 .25rem;font-size:.9375rem;font-weight:600}.rec-info-banner__desc{color:var(--text-muted);margin:0;font-size:.875rem;line-height:1.5}.rec-section{flex-direction:column;gap:1.125rem;display:flex}.rec-section__toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.rec-section__title{color:var(--text-h);letter-spacing:-.015em;margin:0;font-size:1.0625rem;font-weight:600}.rec-section__controls{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.rec-section__filters{align-items:center;gap:.5rem;display:flex}.rec-search{border:1px solid var(--border);background:var(--surface);color:var(--text-h);border-radius:10px;outline:none;width:230px;padding:.5625rem .875rem;font-family:inherit;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.rec-search::placeholder{color:var(--text-muted)}.rec-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}[data-theme=dark] .rec-search{background:var(--surface-elevated)}.rec-filter-tabs{background:var(--surface);border:1px solid var(--border);border-radius:10px;gap:.25rem;padding:.25rem;display:flex}[data-theme=dark] .rec-filter-tabs{background:var(--surface-elevated);border-color:#ffffff0f}.rec-filter-tab{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:7px;padding:.4375rem .875rem;font-family:inherit;font-size:.8125rem;font-weight:500;transition:background .15s,color .15s}.rec-filter-tab:hover:not(.rec-filter-tab--active){color:var(--text-h);background:var(--surface)}.rec-filter-tab--active{background:var(--accent-bg);color:var(--accent);font-weight:600}.rec-list{flex-direction:column;gap:.75rem;display:flex}.rec-section .pagination{padding-top:.5rem}.rec-list--skeleton{pointer-events:none}.rec-list__skeleton-row{background:linear-gradient(90deg, var(--surface) 0%, var(--surface-elevated) 50%, var(--surface) 100%);background-size:200% 100%;border-radius:18px;height:100px;animation:1.4s ease-in-out infinite shimmer}.rec-empty{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius,24px);flex-direction:column;align-items:center;gap:1rem;padding:4rem 2rem;display:flex}[data-theme=dark] .rec-empty{border-color:#ffffff0f}.rec-empty--filtered{padding:3rem 2rem}.rec-empty__visual{background:var(--accent-bg);width:5rem;height:5rem;color:var(--accent);border:1px solid #8b5cf633;border-radius:20px;justify-content:center;align-items:center;margin-bottom:.25rem;display:flex}.rec-empty__title{color:var(--text-h);letter-spacing:-.01em;margin:0;font-size:1.125rem;font-weight:600}.rec-empty__desc{color:var(--text-muted);max-width:380px;margin:0;font-size:.9375rem;line-height:1.55}.rec-footer-note{color:var(--text-muted);border-top:1px solid var(--border);justify-content:center;align-items:center;gap:.5rem;margin:0;padding:1rem;font-size:.8125rem;display:flex}[data-theme=dark] .rec-footer-note{border-color:#ffffff0f}@media (width<=860px){.rec-summary{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.rec-page{gap:1.5rem}.rec-summary{grid-template-columns:repeat(2,1fr);gap:.875rem}.rec-section__toolbar{flex-direction:column;align-items:stretch;gap:.75rem}.rec-section__controls{flex-direction:column;align-items:stretch;gap:.625rem}.rec-section__filters{flex-direction:column;align-items:stretch;gap:.5rem}.rec-section__filters .rec-month-picker,.rec-search{width:100%}.rec-filter-tabs{flex-wrap:wrap;width:100%}.rec-filter-tab{text-align:center;flex:1;padding:.4rem .5rem;font-size:.75rem}}.stmt-field{flex-direction:column;gap:.375rem;display:flex}.stmt-field__label{color:var(--text-h);font-size:.8125rem;font-weight:500}.stmt-field__required{color:var(--expense)}.stmt-select{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text-h);border-radius:10px;outline:none;padding:.625rem .875rem;font-family:inherit;font-size:.9375rem;transition:border-color .15s,box-shadow .15s}.stmt-select:hover:not(:disabled){border-color:var(--accent-border)}.stmt-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.stmt-select:disabled{opacity:.6;cursor:not-allowed}.stmt-select--compact{min-width:8.5rem;max-width:11rem;padding:.4375rem .625rem;font-size:.8125rem}.stmt-table__category-select{width:100%;max-width:11rem}.stmt-checkbox{color:var(--text);cursor:pointer;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.stmt-checkbox input{width:1rem;height:1rem;accent-color:var(--accent)}.stmt-badge{letter-spacing:.01em;white-space:nowrap;border-radius:999px;align-items:center;padding:.1875rem .5rem;font-size:.6875rem;font-weight:600;display:inline-flex}.stmt-badge--valid{background:var(--income-bg);color:var(--income);border:1px solid var(--income-border)}.stmt-badge--duplicate{color:#f59e0b;background:#f59e0b1f;border:1px solid #f59e0b40}.stmt-badge--invalid{background:var(--expense-bg);color:var(--expense);border:1px solid var(--expense-border)}.stmt-table-wrap{-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:12px;width:100%;overflow-x:auto}.stmt-table{border-collapse:collapse;width:100%;min-width:720px;font-size:.8125rem}.stmt-table--preview{table-layout:fixed}.stmt-table--preview tbody>tr>td{vertical-align:middle}.stmt-table__col--status{width:5.5rem;min-width:5.5rem}.stmt-table__col--date{white-space:nowrap;width:6.75rem;min-width:6.75rem}.stmt-table__col--description{width:28%;min-width:10rem;max-width:16rem}.stmt-table__description-text{-webkit-line-clamp:2;word-break:break-word;-webkit-box-orient:vertical;line-height:1.4;display:-webkit-box;overflow:hidden}.stmt-table__col--category{width:11rem;min-width:9.5rem}.stmt-table__col--type{white-space:nowrap;width:4.75rem;min-width:4.75rem}.stmt-table__col--amount{white-space:nowrap;text-align:right;width:6.5rem;min-width:6.5rem}.stmt-table__col--actions{text-align:center;width:3.5rem;min-width:3.5rem}.stmt-table th,.stmt-table td{text-align:left;border-bottom:1px solid var(--border);padding:.75rem .875rem}.stmt-table--preview th.stmt-table__col--amount,.stmt-table--preview .stmt-table__col--amount{text-align:right}.stmt-table--preview .stmt-table__col--actions{text-align:center}.stmt-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;background:var(--surface-elevated);font-size:.75rem;font-weight:600}.stmt-table tr:last-child td{border-bottom:none}.stmt-table__errors{color:var(--expense);background:var(--expense-bg);border-bottom:1px solid var(--border);padding:.5rem .875rem .75rem;font-size:.75rem}.stmt-amount--income{color:var(--income);font-weight:600}.stmt-amount--expense{color:var(--expense);font-weight:600}.import-statement-page{flex-direction:column;gap:1.5rem;max-width:960px;margin:0 auto;display:flex}.stmt-steps{flex-wrap:wrap;gap:.5rem;display:flex}.stmt-steps__item{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:999px;padding:.375rem .75rem;font-size:.75rem;font-weight:500}.stmt-steps__item--active{border-color:var(--accent-border);background:var(--accent-bg);color:var(--accent)}.stmt-steps__item--done{color:var(--text-h)}.stmt-step__subtitle{color:var(--text-muted);margin:0 0 1.25rem;font-size:.875rem;line-height:1.5}.stmt-step__actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}.stmt-upload{border:2px dashed var(--border);background:var(--surface-elevated);text-align:center;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:280px;padding:2rem 1.5rem;transition:border-color .15s,background .15s;display:flex}.stmt-upload--dragging{border-color:var(--accent);background:var(--accent-bg)}.stmt-upload--loading{opacity:.85}.stmt-upload__icon{background:var(--accent-bg);width:4rem;height:4rem;color:var(--accent);border-radius:14px;justify-content:center;align-items:center;display:flex}.stmt-upload__title{color:var(--text-h);margin:0;font-size:1rem;font-weight:600}.stmt-upload__or{color:var(--text-muted);margin:0;font-size:.8125rem}.stmt-upload__hint{color:var(--text-muted);margin:.25rem 0 0;font-size:.8125rem}.stmt-upload__input{display:none}.stmt-mapping__file-meta{border:1px solid var(--border);background:var(--surface-elevated);border-radius:10px;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-bottom:1.25rem;padding:.75rem 1rem;display:flex}.stmt-mapping__file-name{color:var(--text-h);font-size:.875rem;font-weight:600}.stmt-mapping__file-rows{color:var(--text-muted);font-size:.8125rem}.stmt-mapping__fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.stmt-mapping__advanced{border-top:1px solid var(--border);flex-direction:column;gap:1rem;margin-top:1.5rem;padding-top:1.25rem;display:flex}.stmt-mapping__advanced-title,.stmt-mapping__sample-title{color:var(--text-h);margin:0;font-size:.875rem;font-weight:600}.stmt-mapping__advanced-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.stmt-mapping__sample{flex-direction:column;gap:.75rem;margin-top:1.5rem;display:flex}.stmt-preview__stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.875rem;margin-bottom:1.25rem;display:grid}.stmt-preview__pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;margin-top:.875rem;display:flex}.stmt-preview__pagination-size{align-items:center;gap:.5rem;display:flex}.stmt-preview__pagination-label{color:var(--text-muted);white-space:nowrap;font-size:.8125rem;font-weight:500}.stmt-preview__page-size-select{min-width:4.5rem;max-width:5rem}.stmt-preview__pagination-nav{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.stmt-preview__pagination-status{min-width:6.5rem;color:var(--text-muted);text-align:center;font-size:.8125rem;font-weight:500}.stmt-preview__pagination-btn{border:1px solid var(--border);background:var(--surface-elevated);min-width:2.25rem;height:2.25rem;color:var(--text);cursor:pointer;border-radius:8px;padding:0 .875rem;font-family:inherit;font-size:.8125rem;font-weight:500;transition:background .15s,border-color .15s,color .15s}.stmt-preview__pagination-btn:hover:not(:disabled){border-color:var(--accent-border);background:var(--accent-bg);color:var(--text-h)}.stmt-preview__pagination-btn:disabled{opacity:.4;cursor:not-allowed}.stmt-preview__actions{border-top:1px solid var(--border);margin-top:1.25rem;padding-top:1.25rem}.stmt-success{text-align:center;flex-direction:column;align-items:center;gap:1rem;padding:1.5rem 1rem;display:flex}.stmt-success__icon{color:var(--income)}.stmt-success__title{color:var(--text-h);margin:0;font-size:1.25rem;font-weight:600}.stmt-success__summary{color:var(--text);flex-direction:column;gap:.375rem;margin:0;padding:0;font-size:.9375rem;list-style:none;display:flex}.stmt-success__actions{justify-content:center}.stmt-blocked{text-align:center;flex-direction:column;align-items:center;gap:.875rem;padding:2.5rem 1.5rem;display:flex}.stmt-blocked__icon{background:var(--accent-bg);width:3.5rem;height:3.5rem;color:var(--accent);border-radius:12px;justify-content:center;align-items:center;display:flex}.stmt-blocked__title{color:var(--text-h);margin:0;font-size:1.125rem;font-weight:600}.stmt-blocked__desc{max-width:420px;color:var(--text-muted);margin:0;font-size:.9375rem;line-height:1.5}@media (width<=768px){.stmt-mapping__fields,.stmt-mapping__advanced-grid{grid-template-columns:1fr}.stmt-preview__stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stmt-preview__pagination{flex-direction:column;align-items:stretch}.stmt-preview__pagination-nav{justify-content:center}}@media (width<=480px){.stmt-upload{min-height:220px;padding:1.5rem 1rem}.stmt-step__actions{flex-direction:column;align-items:stretch}.stmt-step__actions .btn{width:100%}.stmt-preview__stats{grid-template-columns:1fr}}.dashboard-card-hover{cursor:default;transition:transform .3s,box-shadow .3s,border-color .3s,background-color .3s}.dashboard-card-hover--interactive{cursor:pointer}@media (hover:hover) and (pointer:fine){.dashboard-card-hover:hover{background-color:color-mix(in srgb, var(--surface) 82%, var(--surface-elevated));box-shadow:var(--shadow-lg), 0 10px 28px #0f172a14, 0 0 0 1px #8b5cf61a;border-color:#8b5cf666;transform:translateY(-2px)}[data-theme=dark] .dashboard-card-hover:hover{background-color:color-mix(in srgb, var(--surface) 88%, #8b5cf60f);box-shadow:var(--shadow-lg), 0 10px 32px #00000052, 0 0 0 1px #8b5cf62e, 0 0 24px #8b5cf612;border-color:#8b5cf666}}@media (prefers-reduced-motion:reduce){.dashboard-card-hover{transition:none}.dashboard-card-hover:hover{transform:none}}:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--text:#6b6375;--text-muted:#8b8494;--text-h:#08060d;--bg:#f8f7fa;--surface:#fff;--surface-elevated:#f3f2f6;--border:#e5e4e7;--accent:#7c3aed;--accent-bg:#7c3aed14;--accent-border:#7c3aed40;--income:#059669;--income-bg:#05966914;--income-border:#05966933;--expense:#dc2626;--expense-bg:#dc26260f;--expense-border:#dc262633;--shadow-sm:0 1px 2px #08060d0a;--shadow-md:0 4px 12px #08060d0f;--shadow-lg:0 8px 24px #08060d1a}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--text:#cbd5e1;--text-muted:#94a3b8;--text-h:#f8fafc;--bg:#070a12;--surface:#111520;--surface-elevated:#0d111b;--sidebar-bg:#090d17;--border:#ffffff0f;--accent:#8b5cf6;--accent-bg:#8b5cf62e;--accent-border:#8b5cf659;--income:#22c55e;--income-bg:#22c55e1a;--income-border:#22c55e38;--expense:#ef4444;--expense-bg:#ef44441a;--expense-border:#ef444438;--shadow-sm:0 2px 8px #0000002e;--shadow-md:0 4px 16px #00000047;--shadow-lg:0 8px 32px #0006;--shadow-card:0 4px 24px #00000038;--card-radius:24px;--section-gap:2rem}:root{--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;--layout-topbar-height:60px;--layout-content-padding:1.75rem;--layout-sidebar-width:240px;font:16px/1.5 var(--sans);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:before,:after{box-sizing:border-box}body{background:var(--bg);margin:0;transition:background-color .2s}body.sidebar-lock{touch-action:none;overflow:hidden}#root{width:100%;min-height:100svh}h1,h2,h3{font-family:var(--heading);color:var(--text-h);font-weight:500}h2{margin:0 0 .5rem;font-size:1.5rem}p{margin:0}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}a{color:inherit;text-decoration:none}.auth-guard-loading{background:var(--bg);position:fixed;inset:0}
