@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap";.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:var(--max-width-mobile);background:linear-gradient(180deg,#12121af2,#0a0a0ffa);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid rgba(255,255,255,.08);padding-bottom:env(safe-area-inset-bottom,0);z-index:100}.nav-container{display:flex;justify-content:space-around;align-items:center;height:68px;padding:0 var(--space-xs)}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:var(--space-sm) var(--space-md);color:var(--color-text-tertiary);text-decoration:none;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;border-radius:var(--radius-lg);position:relative}.nav-item:active{transform:scale(.92)}.nav-icon-wrapper{display:flex;align-items:center;justify-content:center;width:40px;height:28px;border-radius:var(--radius-full);transition:all var(--transition-base)}.nav-item.active .nav-icon-wrapper{background:var(--color-accent-gradient);box-shadow:0 4px 15px #6366f166}.nav-item.active{color:var(--color-text-primary)}.nav-item.active svg{color:#fff}.nav-label{font-size:10px;font-weight:500;line-height:1;transition:color var(--transition-fast)}.nav-item.active .nav-label{color:var(--color-accent-primary);font-weight:600}@media (hover: hover){.nav-item:hover:not(.active){color:var(--color-text-secondary)}.nav-item:hover:not(.active) .nav-icon-wrapper{background:#ffffff0d}}.dashboard{animation:fadeIn .5s ease-out}.dashboard-loading{display:flex;align-items:center;justify-content:center;min-height:60vh}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xl)}.greeting{display:flex;align-items:center;gap:var(--space-md)}.greeting-icon{width:44px;height:44px;background:var(--color-accent-gradient);border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:var(--shadow-glow)}.greeting-text{display:flex;flex-direction:column;gap:2px}.greeting-hello{font-size:var(--font-size-lg);font-weight:700}.greeting-date{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.scan-btn{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);border:1px solid var(--color-glass-border);border-radius:var(--radius-xl);color:var(--color-text-primary);text-decoration:none;transition:all var(--transition-base)}.scan-btn:active{transform:scale(.92);background:var(--color-accent-primary)}.hero-card{position:relative;border-radius:var(--radius-3xl);padding:var(--space-xl);margin-bottom:var(--space-xl);overflow:hidden;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);border:1px solid rgba(255,255,255,.08)}.hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.hero-orb{position:absolute;border-radius:50%;filter:blur(60px);opacity:.6;animation:float 8s ease-in-out infinite}.hero-orb-1{width:200px;height:200px;background:radial-gradient(circle,#6366f1 0%,transparent 70%);top:-60px;right:-40px;animation-delay:0s}.hero-orb-2{width:150px;height:150px;background:radial-gradient(circle,#8b5cf6 0%,transparent 70%);bottom:-40px;left:-30px;animation-delay:2s}.hero-orb-3{width:100px;height:100px;background:radial-gradient(circle,#a855f7 0%,transparent 70%);top:50%;left:50%;transform:translate(-50%,-50%);animation-delay:4s}.hero-content{position:relative;z-index:1}.hero-label{display:block;font-size:var(--font-size-sm);color:#ffffffb3;font-weight:500;margin-bottom:var(--space-xs)}.hero-amount{font-size:var(--font-size-3xl);font-weight:800;color:#fff;margin-bottom:var(--space-lg);letter-spacing:-.03em}.hero-stats{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:#ffffff14;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-xl)}.hero-stat{flex:1;display:flex;align-items:center;gap:var(--space-sm)}.hero-stat-icon{width:32px;height:32px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.hero-stat-icon.income{background:#10b98133;color:var(--color-income-light)}.hero-stat-icon.expense{background:#ef444433;color:var(--color-expense-light)}.hero-stat-info{display:flex;flex-direction:column}.hero-stat-label{font-size:11px;color:#fff9}.hero-stat-value{font-size:var(--font-size-sm);font-weight:700;color:#fff}.hero-divider{width:1px;height:32px;background:#ffffff26}.quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-sm);margin-bottom:var(--space-xl)}.quick-action{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-sm);background:var(--gradient-card);border:1px solid var(--color-glass-border);border-radius:var(--radius-xl);text-decoration:none;color:var(--color-text-secondary);font-size:11px;font-weight:500;text-align:center;line-height:1.3;transition:all var(--transition-base)}.quick-action:active{transform:scale(.95);background:var(--gradient-card-hover)}.quick-action-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg);transition:all var(--transition-base)}.quick-action-icon.income{background:var(--color-income-bg);color:var(--color-income)}.quick-action-icon.expense{background:var(--color-expense-bg);color:var(--color-expense)}.quick-action-icon.transfer{background:#6366f11f;color:var(--color-accent-primary)}.quick-action-icon.goal{background:#f59e0b1f;color:var(--color-warning)}.section{margin-bottom:var(--space-xl)}.section-title{font-size:var(--font-size-base);font-weight:700;display:flex;align-items:center;gap:var(--space-sm)}.see-all{display:flex;align-items:center;gap:2px;font-size:var(--font-size-sm);color:var(--color-accent-primary);text-decoration:none;font-weight:600}.wallets-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}.wallet-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--gradient-card);border:1px solid var(--color-glass-border);border-radius:var(--radius-xl);text-decoration:none;color:var(--color-text-primary);transition:all var(--transition-base);animation:fadeIn .4s ease-out forwards;opacity:0;position:relative;overflow:hidden}.wallet-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--wallet-color, var(--color-accent-primary));border-radius:0 2px 2px 0}.wallet-card:active{transform:scale(.97)}.wallet-card-icon{font-size:1.5rem}.wallet-card-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.wallet-card-name{font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wallet-card-balance{font-size:var(--font-size-sm);font-weight:700}.bills-list{display:flex;flex-direction:column;gap:var(--space-sm)}.bill-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--gradient-card);border:1px solid var(--color-glass-border);border-radius:var(--radius-xl);animation:fadeIn .4s ease-out forwards;opacity:0}.bill-date{width:44px;height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--color-warning-bg);border-radius:var(--radius-lg)}.bill-day{font-size:var(--font-size-lg);font-weight:800;color:var(--color-warning);line-height:1}.bill-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.bill-name{font-weight:600;font-size:var(--font-size-sm)}.bill-category{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.bill-amount{font-weight:700;font-size:var(--font-size-sm);color:var(--color-expense)}.transactions-list{display:flex;flex-direction:column;background:var(--gradient-card);border:1px solid var(--color-glass-border);border-radius:var(--radius-xl);overflow:hidden}.transaction-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);border-bottom:1px solid var(--color-glass-border);animation:fadeIn .4s ease-out forwards;opacity:0}.transaction-icon{width:42px;height:42px;background:var(--color-bg-tertiary);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}.transaction-desc{font-weight:600;font-size:var(--font-size-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.transaction-meta{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.empty-transactions{text-align:center;padding:var(--space-xl);background:var(--gradient-card);border:1px solid var(--color-glass-border);border-radius:var(--radius-xl)}.empty-transactions .empty-icon{font-size:3rem;display:block;margin-bottom:var(--space-md)}.empty-transactions p{color:var(--color-text-secondary);margin-bottom:var(--space-lg)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:flex-end;justify-content:center;z-index:200;animation:fadeIn .2s ease-out}.modal-container{background:linear-gradient(180deg,var(--color-bg-elevated) 0%,var(--color-bg-secondary) 100%);border:1px solid var(--color-glass-border);border-bottom:none;border-radius:var(--radius-3xl) var(--radius-3xl) 0 0;width:100%;max-width:var(--max-width-mobile);max-height:92vh;max-height:92dvh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .3s cubic-bezier(.34,1.56,.64,1);box-shadow:0 -20px 60px #00000080}.modal-sm,.modal-md,.modal-lg,.modal-xl{max-width:var(--max-width-mobile)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg);padding-top:var(--space-xl);border-bottom:1px solid var(--color-glass-border);position:sticky;top:0;background:linear-gradient(180deg,var(--color-bg-elevated) 0%,var(--color-bg-secondary) 100%);z-index:1}.modal-header:before{content:"";position:absolute;top:var(--space-sm);left:50%;transform:translate(-50%);width:40px;height:5px;background:var(--color-bg-tertiary);border-radius:var(--radius-full)}.modal-title{font-size:var(--font-size-xl);font-weight:800;margin:0;letter-spacing:-.02em}.modal-close{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-glass);border:1px solid var(--color-glass-border);border-radius:var(--radius-lg);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.modal-close:active{transform:scale(.9);background:var(--color-glass-hover)}.modal-content{padding:var(--space-lg);overflow-y:auto;-webkit-overflow-scrolling:touch}.transactions-page{animation:fadeIn .5s ease-out}.mobile-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.filter-chips{display:flex;gap:var(--space-sm);margin-bottom:var(--space-lg);overflow-x:auto;padding-bottom:var(--space-xs)}.filter-chips::-webkit-scrollbar{display:none}.filter-chip{padding:var(--space-sm) var(--space-md);background:var(--gradient-card);border:1px solid var(--color-glass-border);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary);white-space:nowrap;cursor:pointer;transition:all var(--transition-fast)}.filter-chip:active{transform:scale(.95)}.filter-chip.active{background:var(--color-accent-gradient);border-color:transparent;color:#fff;box-shadow:var(--shadow-glow)}.transaction-groups{display:flex;flex-direction:column;gap:var(--space-lg)}.group-header{font-size:var(--font-size-sm);font-weight:700;color:var(--color-text-tertiary);margin-bottom:var(--space-sm);padding-left:var(--space-xs);text-transform:capitalize}.group-items{display:flex;flex-direction:column;background:var(--gradient-card);border:1px solid var(--color-glass-border);border-radius:var(--radius-2xl);overflow:hidden}.transaction-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-glass-border);cursor:pointer;transition:background var(--transition-fast);animation:fadeIn .4s ease-out forwards;opacity:0}.transaction-item:last-child{border-bottom:none}.transaction-item:active{background:var(--color-glass)}.transaction-icon{width:44px;height:44px;background:var(--color-bg-tertiary);border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}.transaction-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.transaction-title{font-weight:600;font-size:var(--font-size-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.transaction-category{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.transaction-amount{font-weight:700;font-size:var(--font-size-sm);white-space:nowrap}.transaction-amount.income{color:var(--color-income)}.transaction-amount.expense{color:var(--color-expense)}.empty-state-mobile p{color:var(--color-text-secondary)}.fab-group{position:fixed;bottom:calc(var(--bottom-nav-height) + var(--space-lg));right:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm);z-index:50}.fab-mini{width:52px;height:52px;border-radius:var(--radius-full);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-md)}.fab-mini:active{transform:scale(.9)}.fab-mini.income{background:var(--color-income-gradient);color:#fff;box-shadow:var(--shadow-income)}.fab-mini.expense{background:var(--color-expense-gradient);color:#fff;box-shadow:var(--shadow-expense)}.transaction-form{display:flex;flex-direction:column;gap:var(--space-md)}.type-toggle{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm);padding:var(--space-xs);background:var(--color-bg-primary);border-radius:var(--radius-xl)}.toggle-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md);background:transparent;border:none;border-radius:var(--radius-lg);color:var(--color-text-secondary);font-weight:600;font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast)}.toggle-btn.active.income{background:var(--color-income-bg);color:var(--color-income)}.toggle-btn.active.expense{background:var(--color-expense-bg);color:var(--color-expense)}.category-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm);max-height:200px;overflow-y:auto}.category-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:var(--space-md) var(--space-sm);background:var(--color-bg-primary);border:2px solid var(--color-glass-border);border-radius:var(--radius-xl);cursor:pointer;transition:all var(--transition-fast)}.category-btn:active{transform:scale(.95)}.category-btn.active{border-color:var(--color-accent-primary);background:#6366f11a}.category-btn span:first-child{font-size:1.5rem}.category-btn span:last-child{font-size:10px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;font-weight:500}.btn-danger{width:52px;height:52px;min-height:52px;padding:0;background:var(--color-expense-gradient);color:#fff;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-xl)}.wallets-page{animation:fadeIn .5s ease-out}.btn-icon-header:active{transform:scale(.92);background:var(--color-accent-primary)}.total-balance-card{position:relative;background:linear-gradient(135deg,#1e3a5f,#0d1b2a);border-radius:var(--radius-3xl);padding:var(--space-xl);text-align:center;margin-bottom:var(--space-xl);overflow:hidden;border:1px solid rgba(99,170,242,.15)}.total-balance-card:before{content:"";position:absolute;top:0;right:0;width:150px;height:150px;background:radial-gradient(circle,rgba(59,130,246,.3) 0%,transparent 70%);filter:blur(40px)}.total-balance-card:after{content:"";position:absolute;bottom:-50px;left:-50px;width:150px;height:150px;background:radial-gradient(circle,rgba(16,185,129,.2) 0%,transparent 70%);filter:blur(40px)}.balance-label{display:block;font-size:var(--font-size-sm);color:#ffffffb3;margin-bottom:var(--space-xs);position:relative;z-index:1}.balance-amount{display:block;font-size:var(--font-size-3xl);font-weight:800;color:#fff;margin-bottom:var(--space-lg);position:relative;z-index:1;letter-spacing:-.03em}.balance-actions{position:relative;z-index:1}.balance-actions .btn{background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}.balance-actions .btn:hover{background:#ffffff40}.wallets-list{display:flex;flex-direction:column;gap:var(--space-sm)}.wallet-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg);background:var(--gradient-card);border:1px solid var(--color-glass-border);border-radius:var(--radius-2xl);animation:fadeIn .4s ease-out forwards;opacity:0;transition:all var(--transition-base);position:relative;overflow:hidden}.wallet-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--wallet-color, var(--color-accent-primary))}.wallet-card:active{transform:scale(.98)}.wallet-card.inactive{opacity:.5}.wallet-icon{width:52px;height:52px;border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0;background:linear-gradient(135deg,#ffffff1a,#ffffff0d);border:1px solid rgba(255,255,255,.08)}.wallet-info{flex:1;min-width:0}.wallet-name{font-weight:600;font-size:var(--font-size-base);display:flex;align-items:center;gap:var(--space-sm);margin-bottom:4px}.default-badge{font-size:10px;padding:2px 8px;background:var(--color-income-bg);color:var(--color-income);border-radius:var(--radius-full);font-weight:600}.wallet-type{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.wallet-balance{font-weight:800;font-size:var(--font-size-lg);color:var(--color-text-primary);white-space:nowrap}.wallet-menu{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-lg);transition:all var(--transition-fast)}.wallet-menu:hover{background:var(--color-glass);color:var(--color-text-primary)}.wallet-form,.transfer-form{display:flex;flex-direction:column;gap:var(--space-md)}.type-options{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}.type-option{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-md);background:var(--color-bg-primary);border:2px solid var(--color-glass-border);border-radius:var(--radius-xl);cursor:pointer;transition:all var(--transition-fast)}.type-option:hover,.type-option.active{border-color:var(--color-accent-primary);background:#6366f11a}.type-option span:first-child{font-size:1.5rem}.type-option span:last-child{font-size:var(--font-size-xs);font-weight:600}.icon-picker{display:flex;gap:var(--space-sm);flex-wrap:wrap}.icon-btn{width:48px;height:48px;font-size:1.25rem;background:var(--color-bg-primary);border:2px solid var(--color-glass-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast)}.icon-btn:hover,.icon-btn.active{border-color:var(--color-accent-primary);background:#6366f11a}.color-picker{display:flex;gap:var(--space-sm);flex-wrap:wrap}.color-btn{width:40px;height:40px;border:3px solid transparent;border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;color:#fff}.color-btn:hover{transform:scale(1.1)}.form-actions-mobile{display:flex;gap:var(--space-md);padding-top:var(--space-md)}.btn-danger{background:var(--color-expense-gradient);color:#fff;padding:var(--space-md);min-width:52px}.transfer-arrow{display:flex;justify-content:center;color:var(--color-accent-primary);padding:var(--space-sm) 0}.fixed-expenses-page{animation:fadeIn .5s ease-out}.total-monthly-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg);background:linear-gradient(135deg,#f59e0b26,#f59e0b0d);border:1px solid rgba(245,158,11,.25);border-radius:var(--radius-2xl);margin-bottom:var(--space-xl)}.total-monthly-card svg{padding:var(--space-sm);background:var(--color-warning-bg);border-radius:var(--radius-lg);color:var(--color-warning)}.total-info{display:flex;flex-direction:column;gap:2px}.total-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.total-value{font-size:var(--font-size-xl);font-weight:800;color:var(--color-text-primary)}.expenses-list{display:flex;flex-direction:column;gap:var(--space-sm)}.expense-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg);background:var(--gradient-card);border:1px solid var(--color-glass-border);border-radius:var(--radius-2xl);cursor:pointer;animation:fadeIn .4s ease-out forwards;opacity:0;transition:all var(--transition-base);position:relative;overflow:hidden}.expense-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}.expense-item:active{transform:scale(.98)}.expense-item.inactive{opacity:.5}.expense-item.urgent:before{background:var(--color-expense-gradient)}.expense-item.soon:before{background:var(--color-warning-gradient)}.expense-item.normal:before{background:var(--color-accent-gradient)}.expense-left{display:flex;flex-direction:column;gap:var(--space-xs)}.expense-due{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-xs);font-weight:700;padding:4px 10px;border-radius:var(--radius-full);width:fit-content}.expense-due.urgent{background:var(--color-expense-bg);color:var(--color-expense)}.expense-due.soon{background:var(--color-warning-bg);color:var(--color-warning)}.expense-due.normal{background:var(--color-glass);color:var(--color-text-secondary)}.expense-name{font-weight:700;font-size:var(--font-size-base)}.expense-countdown{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.expense-right{text-align:right}.expense-amount{display:block;font-weight:800;font-size:var(--font-size-lg);color:var(--color-expense)}.inactive-badge{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.expense-form{display:flex;flex-direction:column;gap:var(--space-md)}.due-day-grid{display:flex;gap:var(--space-sm);flex-wrap:wrap}.due-day-btn{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-primary);border:2px solid var(--color-glass-border);border-radius:var(--radius-lg);font-weight:700;color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast)}.due-day-btn:active{transform:scale(.92)}.due-day-btn.active{border-color:var(--color-accent-primary);background:#6366f11a;color:var(--color-accent-primary)}.mt-sm{margin-top:var(--space-sm)}.btn-danger{width:52px;min-width:52px;height:52px;min-height:52px;padding:0;background:var(--color-expense-gradient);color:#fff;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-xl)}.goals-page{animation:fadeIn .5s ease-out}.btn-icon-header{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--color-accent-gradient);border:none;border-radius:var(--radius-xl);color:#fff;cursor:pointer;box-shadow:var(--shadow-glow);transition:all var(--transition-base)}.stats-pills{display:flex;gap:var(--space-sm);margin-bottom:var(--space-lg)}.stat-pill{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:var(--gradient-card);border:1px solid var(--color-glass-border);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary)}.stat-pill.success{background:var(--color-income-bg);border-color:#10b9814d;color:var(--color-income)}.loading-state{display:flex;justify-content:center;padding:var(--space-3xl)}.goals-list{display:flex;flex-direction:column;gap:var(--space-md)}.goal-card{background:var(--gradient-card);border:1px solid var(--color-glass-border);border-radius:var(--radius-2xl);padding:var(--space-lg);cursor:pointer;animation:fadeIn .4s ease-out forwards;opacity:0;transition:all var(--transition-base);position:relative;overflow:hidden}.goal-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--goal-color, var(--color-accent-primary))}.goal-card:active{transform:scale(.98)}.goal-top{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg)}.goal-icon{width:52px;height:52px;border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0;background:linear-gradient(135deg,#ffffff1a,#ffffff0d);border:1px solid rgba(255,255,255,.08)}.goal-info{flex:1;min-width:0}.goal-name{display:block;font-weight:700;font-size:var(--font-size-base);margin-bottom:4px}.goal-deadline{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.goal-chevron{color:var(--color-text-tertiary)}.goal-progress-section{display:flex;flex-direction:column;gap:var(--space-sm)}.goal-amounts{display:flex;align-items:baseline;gap:var(--space-xs)}.goal-amounts .current{font-size:var(--font-size-xl);font-weight:800}.goal-amounts .target{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.goal-bottom{display:flex;justify-content:space-between;align-items:center}.goal-percent{font-weight:800;font-size:var(--font-size-sm)}.goal-monthly{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--font-size-xs);color:var(--color-text-secondary);padding:var(--space-xs) var(--space-sm);background:var(--color-glass);border-radius:var(--radius-full)}.completed-section{margin-top:var(--space-xl)}.completed-section h3{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-md)}.goal-card.completed{display:flex;align-items:center;gap:var(--space-md);opacity:.8;padding:var(--space-md);cursor:default}.goal-card.completed:before{background:var(--color-income-gradient)}.goal-card.completed .goal-icon{width:44px;height:44px;background:var(--color-income-bg)}.goal-card.completed .goal-amount{font-size:var(--font-size-sm);color:var(--color-income);font-weight:700}.empty-state-mobile{text-align:center;padding:var(--space-3xl) var(--space-lg)}.empty-icon{font-size:4rem;display:block;margin-bottom:var(--space-lg)}.empty-state-mobile p{color:var(--color-text-secondary);margin-bottom:var(--space-lg)}.goal-form,.contribution-form{display:flex;flex-direction:column;gap:var(--space-md)}.icon-color-row{display:flex;gap:var(--space-md)}.emoji-picker-mini{display:flex;gap:var(--space-xs);flex-wrap:wrap;flex:1}.emoji-btn{width:44px;height:44px;font-size:1.25rem;background:var(--color-bg-primary);border:2px solid var(--color-glass-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast)}.emoji-btn:active{transform:scale(.92)}.emoji-btn.active{border-color:var(--color-accent-primary);background:#6366f11a}.color-picker-mini{display:flex;gap:var(--space-xs)}.color-btn{width:36px;height:36px;border:3px solid transparent;border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast)}.color-btn:active{transform:scale(.92)}.color-btn.active{border-color:#fff;box-shadow:0 0 0 3px #ffffff4d}.contribution-goal-info{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--color-glass);border:1px solid var(--color-glass-border);border-radius:var(--radius-xl);margin-bottom:var(--space-md)}.contribution-icon{font-size:2rem}.contribution-name{display:block;font-weight:700}.contribution-remaining{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.scan-page{animation:fadeIn .5s ease-out}.btn-icon-header{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);border:1px solid var(--color-glass-border);border-radius:var(--radius-xl);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-base)}.btn-icon-header:active{transform:scale(.92)}.upload-section{display:flex;flex-direction:column;gap:var(--space-md)}.upload-area{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-lg);padding:var(--space-3xl) var(--space-lg);background:var(--gradient-card);border:2px dashed var(--color-glass-border);border-radius:var(--radius-3xl);text-align:center;cursor:pointer;transition:all var(--transition-base)}.upload-area:active{transform:scale(.98);border-color:var(--color-accent-primary);background:var(--gradient-card-hover)}.upload-icon{width:88px;height:88px;background:var(--color-accent-gradient);border-radius:var(--radius-3xl);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:var(--shadow-glow-lg);animation:float 4s ease-in-out infinite}.upload-area h3{font-size:var(--font-size-xl);font-weight:800;margin:0}.upload-area p{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}.upload-hint{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--font-size-xs);color:var(--color-text-tertiary);padding:var(--space-sm) var(--space-md);background:var(--color-glass);border-radius:var(--radius-full)}.error-banner{padding:var(--space-md);background:var(--color-expense-bg);border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-xl);color:var(--color-expense);font-size:var(--font-size-sm);text-align:center;font-weight:600}.scanning-section{display:flex;flex-direction:column;gap:var(--space-lg)}.scanning-preview{position:relative;border-radius:var(--radius-2xl);overflow:hidden;background:var(--color-bg-tertiary)}.scanning-preview img{width:100%;height:320px;object-fit:cover}.scanning-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0006}.scan-line{position:absolute;left:0;right:0;height:3px;background:var(--color-accent-primary);box-shadow:0 0 30px var(--color-accent-glow);animation:scanLine 1.5s ease-in-out infinite}@keyframes scanLine{0%,to{top:8%}50%{top:92%}}.scanning-status{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);color:var(--color-text-secondary);font-weight:600}.spin{animation:spin .8s linear infinite}.result-section{display:flex;flex-direction:column;gap:var(--space-lg)}.result-preview{position:relative;width:100px;height:100px;border-radius:var(--radius-xl);overflow:hidden;margin:0 auto;box-shadow:var(--shadow-md)}.result-preview img{width:100%;height:100%;object-fit:cover}.detected-badge{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:4px;padding:6px;background:var(--color-income-gradient);color:#fff;font-size:10px;font-weight:700}.detected-info{display:flex;gap:var(--space-md);padding:var(--space-lg);background:linear-gradient(135deg,#10b9811a,#10b9810d);border:1px solid rgba(16,185,129,.2);border-radius:var(--radius-2xl)}.detected-item{flex:1;text-align:center}.detected-label{display:block;font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-bottom:4px}.detected-value{font-weight:700;font-size:var(--font-size-sm)}.detected-item.highlight .detected-value{font-size:var(--font-size-xl);font-weight:800;color:var(--color-income)}.result-form{display:flex;flex-direction:column;gap:var(--space-md)}.amount-input{font-size:var(--font-size-2xl)!important;font-weight:800!important;text-align:center;letter-spacing:-.02em}.category-scroll{display:flex;gap:var(--space-sm);overflow-x:auto;padding-bottom:var(--space-xs);-webkit-overflow-scrolling:touch}.category-scroll::-webkit-scrollbar{display:none}.category-chip{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:var(--gradient-card);border:1px solid var(--color-glass-border);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary);white-space:nowrap;cursor:pointer;transition:all var(--transition-fast)}.category-chip:active{transform:scale(.95)}.category-chip.active{background:var(--color-accent-gradient);border-color:transparent;color:#fff;box-shadow:var(--shadow-glow)}.category-chip span:first-child{font-size:1.1rem}.analytics-page{animation:fadeIn .5s ease-out}.analytics-loading{display:flex;align-items:center;justify-content:center;min-height:50vh}.mobile-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.mobile-header h1{font-size:var(--font-size-2xl);font-weight:800;letter-spacing:-.03em}.year-select{padding:var(--space-sm) var(--space-md);background:var(--gradient-card);border:1px solid var(--color-glass-border);border-radius:var(--radius-xl);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:600;-webkit-appearance:none}.summary-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm);margin-bottom:var(--space-md)}.summary-card{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);background:var(--gradient-card);border:1px solid var(--color-glass-border);border-radius:var(--radius-xl);position:relative;overflow:hidden}.summary-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px}.summary-card.income:before{background:var(--color-income-gradient)}.summary-card.expense:before{background:var(--color-expense-gradient)}.summary-card svg{flex-shrink:0;padding:var(--space-sm);border-radius:var(--radius-md)}.summary-card.income svg{background:var(--color-income-bg);color:var(--color-income)}.summary-card.expense svg{background:var(--color-expense-bg);color:var(--color-expense)}.summary-info{display:flex;flex-direction:column;gap:2px;min-width:0}.summary-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.summary-value{font-size:var(--font-size-sm);font-weight:700}.balance-summary-card{position:relative;background:linear-gradient(135deg,#1e3a5f,#0d1b2a);border-radius:var(--radius-2xl);padding:var(--space-xl);text-align:center;margin-bottom:var(--space-lg);overflow:hidden;border:1px solid rgba(99,170,242,.15)}.balance-summary-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 80% 20%,rgba(99,102,241,.15) 0%,transparent 50%),radial-gradient(circle at 20% 80%,rgba(16,185,129,.1) 0%,transparent 50%)}.balance-label{display:block;font-size:var(--font-size-sm);color:#ffffffb3;margin-bottom:var(--space-xs);position:relative}.balance-value{display:block;font-size:var(--font-size-2xl);font-weight:800;margin-bottom:var(--space-sm);position:relative}.balance-value.positive{color:var(--color-income-light)}.balance-value.negative{color:var(--color-expense-light)}.savings-rate{font-size:var(--font-size-sm);color:#ffffffb3;position:relative}.savings-rate strong{color:#fff}.tab-nav{display:flex;background:var(--gradient-card);border:1px solid var(--color-glass-border);border-radius:var(--radius-xl);padding:var(--space-xs);margin-bottom:var(--space-lg)}.tab-btn{flex:1;padding:var(--space-sm) var(--space-md);background:transparent;border:none;border-radius:var(--radius-lg);color:var(--color-text-secondary);font-weight:600;font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast)}.tab-btn.active{background:var(--color-accent-gradient);color:#fff;box-shadow:var(--shadow-glow)}.chart-section h3,.category-section h3{font-size:var(--font-size-base);font-weight:700;margin-bottom:var(--space-md)}.monthly-chart{display:flex;align-items:flex-end;gap:var(--space-xs);height:200px;padding:var(--space-lg);background:var(--gradient-card);border:1px solid var(--color-glass-border);border-radius:var(--radius-2xl);margin-bottom:var(--space-md)}.chart-bar-group{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);cursor:pointer}.chart-bar-group.active .chart-label{color:var(--color-accent-primary);font-weight:700}.chart-bars{display:flex;gap:3px;height:150px;align-items:flex-end}.chart-bar{width:10px;border-radius:5px 5px 0 0;transition:height .5s ease-out;min-height:4px}.chart-bar.income{background:var(--color-income-gradient)}.chart-bar.expense{background:var(--color-expense-gradient)}.chart-label{font-size:10px;color:var(--color-text-tertiary);font-weight:500}.chart-legend{display:flex;justify-content:center;gap:var(--space-lg)}.legend-item{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.dot{width:10px;height:10px;border-radius:var(--radius-full)}.dot.income{background:var(--color-income-gradient)}.dot.expense{background:var(--color-expense-gradient)}.pie-container{display:flex;justify-content:center;padding:var(--space-lg) 0}.pie-chart{position:relative;width:180px;height:180px}.pie-chart svg{width:100%;height:100%;transform:rotate(-90deg)}.pie-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.pie-total{font-size:var(--font-size-sm);font-weight:800}.category-list{display:flex;flex-direction:column;gap:var(--space-sm)}.category-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);background:var(--gradient-card);border:1px solid var(--color-glass-border);border-radius:var(--radius-xl)}.category-color{width:12px;height:12px;border-radius:var(--radius-full);flex-shrink:0}.category-icon{font-size:1.25rem}.category-name{flex:1;font-size:var(--font-size-sm);font-weight:600}.category-stats{text-align:right}.category-amount{display:block;font-size:var(--font-size-sm);font-weight:700}.category-percent{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.empty-category{text-align:center;padding:var(--space-2xl);color:var(--color-text-tertiary)}.empty-category svg{margin-bottom:var(--space-md);opacity:.5}.auth-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-lg);background:var(--color-bg-primary);background-image:radial-gradient(circle at 20% 20%,rgba(99,102,241,.15) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(139,92,246,.15) 0%,transparent 50%)}.auth-card{width:100%;max-width:400px;background:var(--gradient-card);border:1px solid var(--color-glass-border);border-radius:var(--radius-3xl);padding:var(--space-2xl) var(--space-xl);position:relative;overflow:hidden;box-shadow:var(--shadow-lg);animation:slideUp .6s cubic-bezier(.16,1,.3,1)}.auth-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--color-accent-gradient)}.auth-header{text-align:center;margin-bottom:var(--space-xl)}.app-logo{display:flex;justify-content:center;margin-bottom:var(--space-md)}.logo-icon{width:56px;height:56px;background:var(--color-accent-gradient);border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:var(--shadow-glow)}.auth-header h1{font-size:var(--font-size-2xl);font-weight:800;margin-bottom:var(--space-xs);background:var(--color-accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.auth-header p{color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.auth-error{padding:var(--space-md);background:var(--color-expense-bg);color:var(--color-expense);border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-lg);font-size:var(--font-size-sm);margin-bottom:var(--space-lg);text-align:center}.form-group label{display:block;font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-secondary);margin-bottom:var(--space-xs);margin-left:var(--space-xs)}.input-wrapper{position:relative}.input-icon{position:absolute;left:var(--space-md);top:50%;transform:translateY(-50%);color:var(--color-text-tertiary)}.input-wrapper input{width:100%;padding:var(--space-md);padding-left:48px;background:var(--color-bg-secondary);border:1px solid var(--color-glass-border);border-radius:var(--radius-xl);color:var(--color-text-primary);font-size:var(--font-size-base);transition:all var(--transition-fast)}.input-wrapper input:focus{outline:none;border-color:var(--color-accent-primary);box-shadow:0 0 0 4px #6366f11a;background:var(--color-bg-primary)}.btn-auth{width:100%;padding:var(--space-md);background:var(--color-accent-gradient);border:none;border-radius:var(--radius-xl);color:#fff;font-weight:700;font-size:var(--font-size-base);margin-top:var(--space-lg);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);transition:all var(--transition-base);box-shadow:var(--shadow-glow)}.btn-auth:hover{box-shadow:var(--shadow-glow-lg);transform:translateY(-2px)}.btn-auth:active{transform:translateY(0)}.btn-auth:disabled{opacity:.7;cursor:not-allowed;transform:none}.auth-footer{text-align:center;margin-top:var(--space-xl);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.auth-footer a{color:var(--color-accent-primary);text-decoration:none;font-weight:700}:root{--color-bg-primary: #0a0a0f;--color-bg-secondary: #13131a;--color-bg-tertiary: #1c1c26;--color-bg-elevated: #1f1f2a;--gradient-card: linear-gradient(165deg, rgba(30, 30, 45, .8) 0%, rgba(20, 20, 30, .9) 100%);--gradient-card-hover: linear-gradient(165deg, rgba(35, 35, 55, .9) 0%, rgba(25, 25, 40, .95) 100%);--color-glass: rgba(255, 255, 255, .04);--color-glass-border: rgba(255, 255, 255, .08);--color-glass-hover: rgba(255, 255, 255, .08);--color-text-primary: #ffffff;--color-text-secondary: #9ca3af;--color-text-tertiary: #6b7280;--color-text-muted: #4b5563;--color-accent-primary: #6366f1;--color-accent-secondary: #8b5cf6;--color-accent-tertiary: #a855f7;--color-accent-gradient: linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #a855f7 100%);--color-accent-gradient-vibrant: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%);--color-accent-glow: rgba(99, 102, 241, .5);--color-income: #10b981;--color-income-light: #34d399;--color-income-bg: rgba(16, 185, 129, .12);--color-income-gradient: linear-gradient(135deg, #10b981 0%, #34d399 100%);--color-income-glow: rgba(16, 185, 129, .5);--color-expense: #ef4444;--color-expense-light: #f87171;--color-expense-bg: rgba(239, 68, 68, .12);--color-expense-gradient: linear-gradient(135deg, #ef4444 0%, #f87171 100%);--color-expense-glow: rgba(239, 68, 68, .5);--color-warning: #f59e0b;--color-warning-bg: rgba(245, 158, 11, .12);--color-warning-gradient: linear-gradient(135deg, #f59e0b 0%, #fbbf24 100%);--color-info: #3b82f6;--color-info-bg: rgba(59, 130, 246, .12);--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.25rem;--radius-2xl: 1.5rem;--radius-3xl: 2rem;--radius-full: 9999px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .25);--shadow-md: 0 4px 20px rgba(0, 0, 0, .35);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .45);--shadow-glow: 0 8px 32px var(--color-accent-glow);--shadow-glow-lg: 0 12px 48px var(--color-accent-glow);--shadow-income: 0 8px 32px var(--color-income-glow);--shadow-expense: 0 8px 32px var(--color-expense-glow);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--transition-spring: .5s cubic-bezier(.34, 1.56, .64, 1);--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-size-4xl: 2.5rem;--bottom-nav-height: 68px;--safe-area-bottom: env(safe-area-inset-bottom, 0px);--max-width-mobile: 480px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-family);background:var(--color-bg-primary);color:var(--color-text-primary);line-height:1.5;min-height:100vh;min-height:100dvh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior-y:contain}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-bg-tertiary);border-radius:var(--radius-full)}.app-layout{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;max-width:var(--max-width-mobile);margin:0 auto;position:relative;background:var(--color-bg-primary);background-image:radial-gradient(circle at 20% 20%,rgba(99,102,241,.03) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(139,92,246,.03) 0%,transparent 50%)}.main-content{flex:1;padding:var(--space-lg);padding-bottom:calc(var(--bottom-nav-height) + var(--safe-area-bottom) + var(--space-xl));overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.2;color:var(--color-text-primary);letter-spacing:-.02em}h1{font-size:var(--font-size-2xl);font-weight:800}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}.text-gradient{background:var(--color-accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.card{background:var(--gradient-card);border:1px solid var(--color-glass-border);border-radius:var(--radius-2xl);padding:var(--space-lg);position:relative;overflow:hidden;transition:all var(--transition-base)}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent)}.card-glass{background:#ffffff08;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);font-size:var(--font-size-sm);font-weight:600;font-family:var(--font-family);border:none;border-radius:var(--radius-xl);cursor:pointer;transition:all var(--transition-base);text-decoration:none;white-space:nowrap;min-height:52px;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(255,255,255,.1) 0%,transparent 50%);pointer-events:none}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--color-accent-gradient);color:#fff;box-shadow:var(--shadow-glow)}.btn-primary:hover{box-shadow:var(--shadow-glow-lg)}.btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-glass-border)}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover{background:var(--color-glass)}.btn-income{background:var(--color-income-gradient);color:#fff;box-shadow:var(--shadow-income)}.btn-expense{background:var(--color-expense-gradient);color:#fff;box-shadow:var(--shadow-expense)}.btn-lg{padding:var(--space-md) var(--space-xl);font-size:var(--font-size-base);min-height:56px}.btn-icon{width:48px;height:48px;padding:0;border-radius:var(--radius-lg)}.form-group{margin-bottom:var(--space-md)}.form-label{display:block;font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-md) var(--space-lg);font-size:var(--font-size-base);font-family:var(--font-family);background:var(--color-bg-primary);border:1.5px solid var(--color-glass-border);border-radius:var(--radius-xl);color:var(--color-text-primary);transition:all var(--transition-fast);min-height:54px;-webkit-appearance:none}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-accent-primary);box-shadow:0 0 0 4px #6366f126;background:var(--color-bg-secondary)}.form-input::placeholder{color:var(--color-text-muted)}.form-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-md) center;background-size:18px;padding-right:48px}.progress-bar{width:100%;height:8px;background:var(--color-bg-tertiary);border-radius:var(--radius-full);overflow:hidden;position:relative}.progress-bar-fill{height:100%;border-radius:var(--radius-full);transition:width var(--transition-slow);background:var(--color-accent-gradient);position:relative}.progress-bar-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.empty-state{text-align:center;padding:var(--space-2xl);color:var(--color-text-secondary)}.empty-state-icon{font-size:4rem;margin-bottom:var(--space-md);filter:grayscale(.3)}.empty-state-title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-sm)}.loading-spinner{width:36px;height:36px;border:3px solid var(--color-bg-tertiary);border-top-color:var(--color-accent-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.animate-fadeIn{animation:fadeIn .5s ease-out forwards}.animate-slideIn{animation:slideIn .4s ease-out forwards}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.text-center{text-align:center}.text-right{text-align:right}.text-sm{font-size:var(--font-size-sm)}.text-xs{font-size:var(--font-size-xs)}.text-secondary{color:var(--color-text-secondary)}.text-income{color:var(--color-income)}.text-expense{color:var(--color-expense)}.font-bold{font-weight:700}.font-semibold{font-weight:600}.mt-md{margin-top:var(--space-md)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.w-full{width:100%}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg);gap:var(--space-md)}.page-title{font-size:var(--font-size-2xl);font-weight:800;letter-spacing:-.03em}.page-subtitle{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin-top:2px}.loading-state{display:flex;justify-content:center;align-items:center;padding:var(--space-3xl)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.section-title{font-size:var(--font-size-lg);font-weight:700}.see-all{display:flex;align-items:center;gap:4px;font-size:var(--font-size-sm);color:var(--color-accent-primary);text-decoration:none;font-weight:600}.form-actions{display:flex;gap:var(--space-md);padding-top:var(--space-md)}.form-actions-mobile{display:flex;gap:var(--space-sm);padding-top:var(--space-md)}.flex-1{flex:1}@supports (padding-bottom: env(safe-area-inset-bottom)){.main-content{padding-bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom) + var(--space-xl))}}
