@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";.toast-container{z-index:var(--z-toast);gap:var(--space-sm);pointer-events:none;flex-direction:column-reverse;width:max-content;max-width:90%;display:flex;position:fixed;bottom:85px;left:50%;transform:translate(-50%)}.toast{justify-content:center;align-items:center;gap:var(--space-md);-webkit-backdrop-filter:blur(40px)saturate(2);pointer-events:auto;transition:all var(--transition-normal);background:#0f0f188c;border:1px solid #ffffff1f;border-radius:50px;padding:10px 24px;animation:.3s cubic-bezier(.16,1,.3,1) toastIn;display:flex;box-shadow:0 12px 32px #00000073,inset 0 1px #ffffff2e,inset 0 -1px #00000026}.toast-success{background:#22c55e14;border-color:#22c55e59;box-shadow:0 12px 32px #00000073,0 0 16px #22c55e26,inset 0 1px #ffffff40,inset 0 -1px #22c55e1a}.toast-success .toast-icon{color:var(--income)}.toast-error{background:#ef444414;border-color:#ef444459;box-shadow:0 12px 32px #00000073,0 0 16px #ef444426,inset 0 1px #ffffff40,inset 0 -1px #ef44441a}.toast-error .toast-icon{color:var(--expense)}.toast-info{background:#7c5cfc14;border-color:#7c5cfc59;box-shadow:0 12px 32px #00000073,0 0 16px #7c5cfc26,inset 0 1px #ffffff40,inset 0 -1px #7c5cfc1a}.toast-info .toast-icon{color:var(--accent)}.toast-icon{filter:drop-shadow(0 0 4px #ffffff1a);flex-shrink:0;display:flex}.toast-message{color:var(--text-primary);text-align:center;letter-spacing:.01em;text-shadow:0 1px 2px #0006;font-size:.88rem;font-weight:600;line-height:1.3}@keyframes toastIn{0%{opacity:0;transform:translateY(16px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-overlay{-webkit-backdrop-filter:blur(4px);z-index:var(--z-modal);padding:var(--space-xl);background:#0009;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-content{width:100%;max-width:320px;padding:var(--space-2xl);text-align:center;animation:.25s cubic-bezier(.16,1,.3,1) scaleIn}.modal-icon{color:var(--expense);margin-bottom:var(--space-lg)}.modal-message{font-size:var(--font-base);color:var(--text-primary);margin-bottom:var(--space-xl);line-height:1.6}.modal-actions{gap:var(--space-md);display:flex}.modal-btn{flex:1}.btn-danger{background:linear-gradient(135deg, var(--expense) 0%, #dc2626 100%);color:#fff;box-shadow:0 4px 16px #ef444440}.btn-danger:hover{transform:translateY(-1px);box-shadow:0 6px 24px #ef444459}.lg-navbar{z-index:var(--z-navbar);padding:0 12px;padding-bottom:max(var(--safe-bottom), 8px);pointer-events:none;position:fixed;bottom:0;left:0;right:0}.lg-navbar-container{pointer-events:auto;align-items:flex-end;gap:10px;max-width:480px;margin:0 auto;display:flex}.lg-bar{-webkit-backdrop-filter:blur(40px)saturate(1.8);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:50px;flex:1;align-items:center;gap:3px;min-width:0;height:58px;padding:5px;display:flex;position:relative;box-shadow:0 8px 32px #00000059,inset 0 1px #ffffff14,inset 0 -1px #0000001f}.lg-bar:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 0%,#ffffff1a 30%,#ffffff26 50%,#ffffff1a 70%,#0000 100%);border-radius:1px;height:1px;position:absolute;top:0;left:24px;right:24px}.lg-tab{color:#ffffff59;-webkit-tap-highlight-color:transparent;border:1px solid #0000;border-radius:50px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;min-height:46px;padding:6px 4px;text-decoration:none;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex}.lg-tab:hover{color:#ffffff8c}.lg-tab.active{color:var(--accent-light);background:linear-gradient(#ffffff21 0%,#ffffff0a 100%);border-color:#ffffff29;box-shadow:0 2px 8px #00000038,0 1px 3px #0000001f,inset 0 1px #ffffff24,inset 0 -.5px #00000014}.lg-tab-icon{justify-content:center;align-items:center;width:24px;height:24px;transition:transform .2s;display:flex}.lg-tab.active .lg-tab-icon{filter:drop-shadow(0 0 4px #9b82ff40);transform:scale(1.05)}.lg-tab-label{letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:.56rem;font-weight:600;line-height:1;overflow:hidden}.lg-tab:not(.active) .lg-tab-label{opacity:.6}.lg-tab:active{transition:transform 80ms;transform:scale(.9)}.lg-fab{-webkit-backdrop-filter:blur(40px)saturate(1.8);color:#ffffff8c;-webkit-tap-highlight-color:transparent;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:3px;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden;box-shadow:0 8px 32px #00000059,inset 0 1px #ffffff14,inset 0 -1px #0000001f}.lg-fab:hover{color:#ffffffbf;background:#ffffff14;border-color:#ffffff29}.lg-fab.active{color:var(--accent-light);background:linear-gradient(#ffffff21 0%,#ffffff0a 100%);border-color:#ffffff29;box-shadow:0 8px 32px #00000059,0 0 16px #7c5cfc26,inset 0 1px #ffffff24,inset 0 -.5px #00000014}.lg-fab:active{transition:transform 80ms;transform:scale(.92)}.lg-fab:before{content:"";pointer-events:none;background:linear-gradient(#ffffff1f 0%,#0000 100%);border-radius:50%;height:40%;position:absolute;top:2px;left:15%;right:15%}.greeting{font-size:var(--font-xl);margin-bottom:var(--space-xl);background:linear-gradient(135deg, var(--text-primary) 0%, var(--accent-light) 100%);-webkit-text-fill-color:transparent;align-items:center;gap:var(--space-sm);-webkit-background-clip:text;background-clip:text;font-weight:700;display:flex}.crown-icon{color:var(--accent-light);-webkit-text-fill-color:var(--accent-light);flex-shrink:0}.summary-grid{gap:var(--space-md);margin-bottom:var(--space-xl);grid-template-columns:repeat(3,1fr);display:grid}.summary-card{padding:var(--space-lg);text-align:center;gap:var(--space-sm);flex-direction:column;display:flex}.summary-label{font-size:var(--font-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.summary-card .amount{font-size:var(--font-base)}.chart-card{padding:var(--space-xl)}.chart-wrapper{height:200px;margin-bottom:var(--space-lg);justify-content:center;align-items:center;display:flex}.chart-legend{gap:var(--space-sm);flex-direction:column;display:flex}.legend-item{align-items:center;gap:var(--space-sm);font-size:var(--font-sm);display:flex}.legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.legend-label{color:var(--text-secondary);flex:1}.legend-value{color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:600}.section-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;min-height:28px;display:flex}.section-header .section-title{align-items:center;margin-bottom:0;display:flex}.btn-link{font-size:var(--font-sm);color:var(--accent-light);cursor:pointer;transition:opacity var(--transition-fast);-webkit-tap-highlight-color:transparent;background:0 0;border:none;align-items:center;gap:4px;padding:4px 0;font-weight:500;display:inline-flex}.btn-link:hover{opacity:.8}.btn-link:active{opacity:.6}.tx-list{gap:var(--space-sm);flex-direction:column;display:flex}.tx-item{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);cursor:pointer;display:flex}.tx-icon{background:var(--glass-bg);border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.4rem;display:flex}.tx-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.tx-desc{font-size:var(--font-base);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.tx-date{font-size:var(--font-xs);color:var(--text-secondary)}.tx-item .amount{font-size:var(--font-base);flex-shrink:0}.type-btn{font-size:var(--font-base);color:#ffffff59;-webkit-tap-highlight-color:transparent;cursor:pointer;letter-spacing:.02em;background:0 0;border:1px solid #0000;border-radius:50px;flex:1;padding:10px 16px;font-weight:600;transition:all .25s cubic-bezier(.4,0,.2,1)}.type-btn.active.all{color:var(--accent-light);background:linear-gradient(#7c5cfc2e 0%,#7c5cfc0f 100%);border-color:#7c5cfc4d;box-shadow:0 2px 8px #00000038,0 0 12px #7c5cfc1a,inset 0 1px #ffffff1a,inset 0 -.5px #00000014}.search-input{margin-bottom:var(--space-xl)}.history-list{margin-bottom:var(--space-xl);gap:var(--space-xs);flex-direction:column;display:flex}.tx-swipe-container{border-radius:var(--radius-lg);box-sizing:border-box;background:#00000040;position:relative;overflow:hidden}.tx-swipe-actions{z-index:1;display:flex;position:absolute;top:0;bottom:0}.tx-swipe-actions.left{width:100px;left:0}.tx-swipe-actions.right{width:100px;right:0}.tx-swipe-btn{cursor:pointer;width:100%;height:100%;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;border:none;align-items:center;display:flex}.tx-swipe-btn.edit{color:var(--accent-light);background:linear-gradient(#7c5cfc40 0%,#7c5cfc1f 100%);border-left:1px solid #ffffff0d;justify-content:flex-end;padding-right:28px}.tx-swipe-btn.edit:hover{color:#fff;background:#7c5cfc66}.tx-swipe-btn.delete{color:var(--expense);background:linear-gradient(#ef444440 0%,#ef44441f 100%);border-right:1px solid #ffffff0d;justify-content:flex-start;padding-left:28px}.tx-swipe-btn.delete:hover{color:#fff;background:#ef444466}.tx-swipe-btn:active{transform:scale(.85)}.history-list .tx-item{z-index:2;width:100%;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(25px);border:1px solid var(--glass-border);box-sizing:border-box;-webkit-user-select:none;user-select:none;touch-action:pan-y;justify-content:space-between;align-items:center;display:flex;position:relative;background:#1e1b2ecc!important}.edit-inline-wrapper{align-items:center;gap:var(--space-xs);width:100%;display:flex}.edit-inline-wrapper .edit-input{flex:1;height:32px!important;padding:0 var(--space-sm)!important;font-size:var(--font-sm)!important;box-sizing:border-box!important;margin-bottom:0!important}.edit-inline-wrapper .btn-icon{border-radius:var(--radius-sm);border:1px solid var(--glass-border);cursor:pointer;width:32px;height:32px;transition:all var(--transition-fast);justify-content:center;align-items:center;display:inline-flex;box-sizing:border-box!important}.edit-inline-wrapper .btn-icon.check-btn{color:#22c55e;background:#22c55e1f;border-color:#22c55e40}.edit-inline-wrapper .btn-icon.check-btn:hover{background:#22c55e38}.edit-inline-wrapper .btn-icon.cancel-btn{color:#ef4444;background:#ef44441f;border-color:#ef444440}.edit-inline-wrapper .btn-icon.cancel-btn:hover{background:#ef444438}.edit-inline-wrapper .btn-icon:active{transform:scale(.9)}.load-more-btn{margin-top:var(--space-md);margin-bottom:var(--space-2xl)}.type-toggle{height:50px;margin-bottom:var(--space-xl);-webkit-backdrop-filter:blur(40px)saturate(1.8);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:50px;align-items:center;gap:3px;padding:4px;display:flex;position:relative;box-shadow:0 8px 32px #00000059,inset 0 1px #ffffff14,inset 0 -1px #0000001f}.type-toggle:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 0%,#ffffff1a 30%,#ffffff26 50%,#ffffff1a 70%,#0000 100%);border-radius:1px;height:1px;position:absolute;top:0;left:24px;right:24px}.type-btn{font-size:var(--font-base);color:#ffffff59;-webkit-tap-highlight-color:transparent;letter-spacing:.02em;border:1px solid #0000;border-radius:50px;flex:1;padding:10px 16px;font-weight:600;transition:all .25s cubic-bezier(.4,0,.2,1)}.type-btn:active{transition:transform 80ms;transform:scale(.96)}.type-btn.active.expense{color:var(--expense);background:linear-gradient(#ef44442e 0%,#ef44440f 100%);border-color:#ef44444d;box-shadow:0 2px 8px #00000038,0 0 12px #ef44441a,inset 0 1px #ffffff1a,inset 0 -.5px #00000014}.type-btn.active.income{color:var(--income);background:linear-gradient(#22c55e2e 0%,#22c55e0f 100%);border-color:#22c55e4d;box-shadow:0 2px 8px #00000038,0 0 12px #22c55e1a,inset 0 1px #ffffff1a,inset 0 -.5px #00000014}.amount-display{padding:var(--space-2xl);margin-bottom:var(--space-xl);text-align:center;cursor:text;position:relative}.amount-value{font-size:var(--font-3xl);font-variant-numeric:tabular-nums;font-weight:800}.amount-value.expense{color:var(--expense)}.amount-value.income{color:var(--income)}.amount-hidden-input{opacity:0;cursor:text;width:100%;height:100%;font-size:16px;position:absolute;inset:0}.category-grid{gap:var(--space-sm);grid-template-columns:repeat(4,1fr);display:grid}.category-item{align-items:center;gap:var(--space-xs);padding:var(--space-md);border-radius:var(--radius-md);background:var(--glass-bg);transition:all var(--transition-fast);border:1px solid #0000;flex-direction:column;display:flex}.category-item:hover{background:var(--glass-bg-hover)}.category-item.selected{border-color:var(--cat-selected-color,var(--accent));background:var(--cat-selected-bg,var(--accent-bg));box-shadow:0 0 16px var(--cat-selected-glow,var(--accent-glow))}.cat-icon-wrap{border-radius:var(--radius-sm);background:var(--cat-color-bg,#ffffff0f);width:36px;height:36px;color:var(--cat-color,var(--text-primary));transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.cat-name{font-size:var(--font-xs);color:var(--cat-color,var(--text-secondary));text-align:center;font-weight:500;line-height:1.2}.category-item.selected .cat-name{color:var(--cat-selected-color,var(--accent-light));font-weight:600}.source-bar{gap:var(--space-sm);flex-wrap:wrap;display:flex}.date-display{align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);display:flex;position:relative}.date-display:hover{border-color:var(--glass-border-hover);background:var(--glass-bg-hover)}.date-text{font-size:var(--font-base);color:var(--text-primary);letter-spacing:.03em;font-weight:600}.date-hidden-input{opacity:0;cursor:pointer;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;width:100%;height:100%;position:absolute;top:0;left:0}.submit-fab{bottom:calc(80px + max(var(--safe-bottom,0px), 8px));z-index:90;cursor:pointer;background:linear-gradient(135deg, var(--accent) 0%, var(--accent-dark) 100%);color:#fff;-webkit-tap-highlight-color:transparent;border:none;border-radius:50px;justify-content:center;align-items:center;width:96px;height:40px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 4px 20px #7c5cfc66,0 2px 8px #0000004d,inset 0 1px #fff3}.submit-fab:hover:not(:disabled){transform:translate(-50%)scale(1.08);box-shadow:0 6px 28px #7c5cfc80,0 2px 8px #0000004d,inset 0 1px #fff3}.submit-fab:active:not(:disabled){transition:transform 80ms;transform:translate(-50%)scale(.92)}.submit-fab:disabled{opacity:.3;cursor:not-allowed;filter:grayscale(.5);box-shadow:none;transform:translate(-50%)!important}.success-page{justify-content:center;align-items:center;gap:var(--space-lg);flex-direction:column;min-height:60dvh;animation:.4s scaleIn;display:flex}.success-icon{font-size:4rem}.page .input-glass{margin-bottom:var(--space-lg)}.total-card{text-align:center;padding:var(--space-2xl);margin-bottom:var(--space-xl);border-radius:var(--radius-lg);background:linear-gradient(135deg,#7c5cfc14 0%,#7c5cfc05 100%);border-color:#7c5cfc33}.total-label{font-size:var(--font-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-sm);display:block}.total-amount{font-size:var(--font-3xl);color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:800}.source-list{gap:var(--space-md);margin-bottom:var(--space-xl);flex-direction:column;display:flex}.source-card{padding:var(--space-lg);border-radius:var(--radius-lg);justify-content:space-between;align-items:center;display:flex}.source-info{align-items:center;gap:var(--space-md);flex:1;min-width:0;display:flex}.source-icon-large{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-weight:700;display:flex}.source-details{gap:var(--space-xs);flex-direction:column;display:flex}.source-name{font-size:var(--font-base);align-items:center;gap:var(--space-sm);color:var(--text-primary);font-weight:600;display:flex}.source-balance{font-size:var(--font-lg);color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:700}.source-actions{align-items:center;gap:var(--space-xs);display:flex}.source-action-btn{background:var(--glass-bg);border:1px solid var(--glass-border);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;border-radius:50%;justify-content:center;align-items:center;display:flex}.source-action-btn:hover{background:var(--glass-bg-hover);color:var(--text-primary)}.source-action-btn:active{transform:scale(.9)}.source-action-btn.delete:hover{color:#ef4444;background:#ef444426;border-color:#ef44444d}.edit-balance-row{gap:var(--space-sm);align-items:center;min-height:38px;margin-top:4px;display:flex}.edit-balance-input{width:170px!important;height:38px!important;padding:0 var(--space-md)!important;font-size:var(--font-lg)!important;color:var(--text-primary)!important;box-sizing:border-box!important;margin-bottom:0!important;font-weight:700!important;line-height:36px!important;display:block!important}.edit-balance-row .btn-icon{border-radius:var(--radius-md);border:1px solid var(--glass-border);width:38px;height:38px;transition:all var(--transition-fast);justify-content:center;align-items:center;display:inline-flex;box-sizing:border-box!important}.edit-balance-row .btn-icon:first-of-type{color:#22c55e;background:#22c55e1f;border-color:#22c55e40}.edit-balance-row .btn-icon:first-of-type:hover{color:#4ade80;background:#22c55e33;border-color:#22c55e66}.edit-balance-row .btn-icon:last-of-type{color:#ef4444;background:#ef44441f;border-color:#ef444440}.edit-balance-row .btn-icon:last-of-type:hover{color:#f87171;background:#ef444433;border-color:#ef444466}.edit-balance-row .btn-icon:active{transform:scale(.9)}.add-source-btn{border-style:dashed;border-color:var(--glass-border-hover);color:var(--text-secondary);justify-content:center;align-items:center;gap:var(--space-sm);display:flex}.add-source-form{padding:var(--space-xl);gap:var(--space-xl);border-radius:var(--radius-lg);flex-direction:column;animation:.3s cubic-bezier(.4,0,.2,1) slideUp;display:flex}.add-source-title{font-size:var(--font-md);color:var(--text-primary);margin-bottom:-4px;font-weight:700}.icon-selector-grid{gap:var(--space-sm);flex-direction:column;display:flex}.selector-label{font-size:var(--font-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.selector-options{gap:var(--space-sm);grid-template-columns:repeat(2,1fr);display:grid}.icon-option-btn{align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);text-align:left;-webkit-tap-highlight-color:transparent;display:flex}.icon-option-btn:hover{background:var(--glass-bg-hover);color:var(--text-primary);border-color:var(--glass-border-hover)}.icon-option-btn.active{border-width:1.5px;font-weight:600;transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.icon-option-text{font-size:var(--font-sm)}.add-source-row{gap:var(--space-md);display:flex}.add-source-row .btn{flex:1}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.month-nav{justify-content:center;align-items:center;gap:var(--space-lg);margin-bottom:var(--space-lg);display:flex}.month-nav-btn{background:var(--glass-bg);border:1px solid var(--glass-border);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;border-radius:50%;justify-content:center;align-items:center;display:flex}.month-nav-btn:hover:not(:disabled){background:var(--glass-bg-hover);color:var(--text-primary)}.month-nav-btn:active:not(:disabled){transform:scale(.9)}.month-nav-btn:disabled{opacity:.3;cursor:not-allowed}.month-nav-label{font-size:var(--font-md);color:var(--text-primary);text-align:center;min-width:120px;font-weight:600}.period-bar{gap:var(--space-sm);margin-bottom:var(--space-xl);display:flex}.stats-summary{padding:var(--space-xl);margin-bottom:var(--space-xl);justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.stats-main{gap:var(--space-xs);flex-direction:column;display:flex}.stats-label{font-size:var(--font-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.stats-amount{font-size:var(--font-2xl)!important}.stats-chart-card{margin-bottom:var(--space-xl)}.stats-chart-card .chart-wrapper{height:220px}.category-breakdown{gap:var(--space-lg);flex-direction:column;display:flex}.breakdown-item{gap:var(--space-sm);flex-direction:column;display:flex}.breakdown-header{justify-content:space-between;align-items:center;display:flex}.breakdown-label{font-size:var(--font-base);color:var(--text-secondary);align-items:center;gap:var(--space-sm);display:flex}.breakdown-icon-wrap{border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex}.breakdown-value{font-size:var(--font-base);color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:600}.breakdown-bar{background:var(--glass-bg);border-radius:var(--radius-full);height:6px;overflow:hidden}.breakdown-fill{border-radius:var(--radius-full);height:100%;transition:width .6s cubic-bezier(.4,0,.2,1)}.settings-section{margin-bottom:var(--space-xl)}.settings-accordion-header{width:100%;padding:var(--space-md) var(--space-md);background:var(--glass-bg);border:none;border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;justify-content:space-between;align-items:center;margin-bottom:0;display:flex}.settings-accordion-header:hover{background:var(--glass-bg-hover)}.settings-accordion-header:active{transform:scale(.99)}.accordion-left{align-items:center;gap:var(--space-sm);display:flex}.accordion-left .section-title{text-transform:uppercase;font-size:var(--font-sm);color:var(--text-secondary);letter-spacing:.05em;margin-bottom:0;font-weight:600}.accordion-chevron{color:var(--text-secondary);flex-shrink:0;transition:transform .25s cubic-bezier(.4,0,.2,1)}.accordion-chevron.open{transform:rotate(180deg)}.accordion-count{font-size:var(--font-xs);color:var(--text-tertiary);background:var(--glass-bg-active);border-radius:var(--radius-full);padding:1px 7px;font-weight:600}.accordion-add-btn{padding:5px 10px!important;font-size:.75rem!important}.accordion-body{grid-template-rows:0fr;margin-top:0;transition:grid-template-rows .3s cubic-bezier(.4,0,.2,1),margin .3s;display:grid}.accordion-body.open{margin-top:var(--space-md);grid-template-rows:1fr}.accordion-body>*{overflow:hidden}.cat-list{gap:var(--space-sm);flex-direction:column;display:flex}.cat-list-item{align-items:center;gap:var(--space-md);padding:var(--space-md);border-radius:var(--radius-md);background:var(--glass-bg);border:1px solid var(--glass-border);transition:all var(--transition-fast);display:flex}.cat-list-item:hover{background:var(--glass-bg-hover)}.cat-list-icon{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.cat-list-info{flex:1;min-width:0}.cat-list-name{font-size:var(--font-base);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.cat-list-type{font-size:var(--font-xs);color:var(--text-secondary);margin-top:1px}.cat-list-actions{gap:var(--space-xs);flex-shrink:0;display:flex}.cat-form{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-lg);animation:.3s slideUp}.cat-form-title{font-size:var(--font-md);margin-bottom:var(--space-lg);color:var(--text-primary);font-weight:600}.cat-form-row{margin-bottom:var(--space-lg)}.cat-form-label{font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:var(--space-sm);font-weight:600;display:block}.cat-type-selector{gap:var(--space-sm);display:flex}.cat-type-btn{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:var(--font-sm);background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-secondary);transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;cursor:pointer;flex:1;font-weight:500}.cat-type-btn.active{background:var(--accent-bg);border-color:var(--accent);color:var(--accent-light)}.cat-type-btn:active{transform:scale(.97)}.icon-picker{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.icon-pick{aspect-ratio:1;border-radius:var(--radius-sm);background:var(--glass-bg);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;border:2px solid #0000;justify-content:center;align-items:center;display:flex}.icon-pick:hover{background:var(--glass-bg-hover);color:var(--text-primary)}.icon-pick.selected{border-color:var(--accent);color:var(--accent-light);background:var(--accent-bg)}.icon-pick:active{transform:scale(.9)}.color-picker{grid-template-columns:repeat(8,1fr);gap:8px;display:grid}.color-dot{aspect-ratio:1;cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;border:2px solid #0000;border-radius:50%;position:relative}.color-dot:hover{transform:scale(1.15)}.color-dot.selected{box-shadow:0 0 0 2px var(--accent), 0 0 12px #7c5cfc4d;border-color:#fff;transform:scale(1.15)}.color-dot:active{transform:scale(.95)}.cat-form-preview{align-items:center;gap:var(--space-md);padding:var(--space-md);border-radius:var(--radius-md);border:1px dashed var(--glass-border);background:#ffffff08;display:flex}.cat-form-preview-icon{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.cat-form-preview-label{font-weight:600;font-size:var(--font-base)}.cat-form-actions{gap:var(--space-sm);margin-top:var(--space-lg);display:flex}.cat-form-actions .btn{flex:1}.admin-user-list{gap:var(--space-sm);flex-direction:column;display:flex}.admin-user-item{align-items:center;gap:var(--space-md);padding:var(--space-md);border-radius:var(--radius-md);background:var(--glass-bg);border:1px solid var(--glass-border);display:flex}.admin-user-avatar{background:var(--accent-bg);width:36px;height:36px;color:var(--accent-light);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.admin-user-info{flex:1;min-width:0}.admin-user-name{font-weight:600;font-size:var(--font-base);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.admin-user-meta{font-size:var(--font-xs);color:var(--text-secondary);gap:var(--space-sm);align-items:center;display:flex}.admin-user-toggle{flex-shrink:0}.settings-empty{text-align:center;padding:var(--space-xl);color:var(--text-secondary);font-size:var(--font-sm)}:root{--bg-primary:#0a0a0f;--bg-secondary:#12121a;--bg-gradient:linear-gradient(135deg, #0a0a0f 0%, #1a1a2e 50%, #0f0f1a 100%);--glass-bg:#ffffff0a;--glass-bg-hover:#ffffff12;--glass-bg-active:#ffffff1a;--glass-border:#ffffff14;--glass-border-hover:#ffffff26;--glass-blur:20px;--glass-shadow:0 8px 32px #0006;--text-primary:#f0f0f5;--text-secondary:#88a;--text-tertiary:#555570;--text-inverse:#0a0a0f;--accent:#7c5cfc;--accent-light:#9b82ff;--accent-dark:#5a3ce0;--accent-glow:#7c5cfc40;--accent-bg:#7c5cfc1f;--income:#22c55e;--income-bg:#22c55e1f;--expense:#ef4444;--expense-bg:#ef44441f;--warning:#f59e0b;--warning-bg:#f59e0b1f;--info:#3b82f6;--info-bg:#3b82f61f;--cat-food:#f97316;--cat-transport:#3b82f6;--cat-shopping:#ec4899;--cat-bills:#14b8a6;--cat-entertainment:#8b5cf6;--cat-health:#ef4444;--cat-education:#06b6d4;--cat-other:#6b7280;--cat-salary:#22c55e;--cat-income-other:#10b981;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--space-2xl:32px;--space-3xl:48px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--font-family:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-xs:.7rem;--font-sm:.8rem;--font-base:.9rem;--font-md:1rem;--font-lg:1.15rem;--font-xl:1.4rem;--font-2xl:1.75rem;--font-3xl:2.25rem;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s cubic-bezier(.4, 0, .2, 1);--z-base:1;--z-card:10;--z-navbar:100;--z-modal:200;--z-toast:300;--navbar-height:64px;--header-height:56px;--safe-bottom:env(safe-area-inset-bottom,0px)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-size:16px}body{font-family:var(--font-family);background:var(--bg-gradient);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-attachment:fixed;min-height:100dvh;line-height:1.5;overflow-x:hidden}#root{flex-direction:column;width:100%;max-width:480px;min-height:100dvh;margin:0 auto;display:flex}a{color:var(--accent-light);text-decoration:none}button{font-family:var(--font-family);cursor:pointer;color:inherit;background:0 0;border:none;outline:none}input,textarea,select{font-family:var(--font-family);color:var(--text-primary);background:0 0;border:none;outline:none}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:var(--radius-full)}.glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow);transition:background var(--transition-fast), border-color var(--transition-fast)}.glass:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover)}.glass.no-hover:hover{background:var(--glass-bg);border-color:var(--glass-border)}.glass.active,.glass.selected{background:var(--accent-bg);border-color:var(--accent);box-shadow:var(--glass-shadow), 0 0 20px var(--accent-glow)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-accent{color:var(--accent-light)}.text-income{color:var(--income)}.text-expense{color:var(--expense)}.amount{font-variant-numeric:tabular-nums;font-weight:700}.amount.income{color:var(--income)}.amount.expense{color:var(--expense)}.page{padding:var(--space-lg);padding-bottom:calc(var(--navbar-height) + var(--safe-bottom) + var(--space-lg));flex:1;animation:.3s fadeIn}.page-title{font-size:var(--font-xl);margin-bottom:var(--space-xl);color:var(--text-primary);font-weight:700}.section{margin-bottom:var(--space-xl)}.section-title{font-size:var(--font-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-md);font-weight:600}.btn{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);border-radius:var(--radius-md);font-size:var(--font-base);transition:all var(--transition-fast);white-space:nowrap;-webkit-tap-highlight-color:transparent;font-weight:600;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-dark) 100%);color:#fff;box-shadow:0 4px 16px var(--accent-glow)}.btn-primary:hover{box-shadow:0 6px 24px var(--accent-glow);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-glass{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-primary)}.btn-glass:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover)}.btn-full{width:100%}.btn-lg{padding:var(--space-lg) var(--space-xl);font-size:var(--font-md);border-radius:var(--radius-lg)}.input-glass{width:100%;padding:var(--space-md) var(--space-lg);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-base);transition:all var(--transition-fast)}.input-glass::placeholder{color:var(--text-tertiary)}.input-glass:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.chip{align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-full);font-size:var(--font-sm);background:var(--glass-bg);border:1px solid var(--glass-border);cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;font-weight:500;display:inline-flex}.chip:active{transform:scale(.95)}.chip:hover{background:var(--glass-bg-hover)}.chip.active{background:var(--accent-bg);border-color:var(--accent);color:var(--accent-light)}.badge{padding:2px var(--space-sm);border-radius:var(--radius-full);font-size:var(--font-xs);align-items:center;font-weight:600;display:inline-flex}.badge-income{background:var(--income-bg);color:var(--income)}.badge-expense{background:var(--expense-bg);color:var(--expense)}.badge-info{background:var(--info-bg);color:var(--info)}.toggle{border-radius:var(--radius-full);background:var(--glass-bg-active);border:1px solid var(--glass-border);cursor:pointer;width:44px;height:24px;transition:all var(--transition-fast);position:relative}.toggle:after{content:"";background:var(--text-secondary);width:18px;height:18px;transition:all var(--transition-fast);border-radius:50%;position:absolute;top:2px;left:2px}.toggle.on{background:var(--accent-bg);border-color:var(--accent)}.toggle.on:after{background:var(--accent);left:22px}.spinner{border:2px solid var(--glass-border);border-top-color:var(--accent);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}.loading-page{justify-content:center;align-items:center;gap:var(--space-lg);flex-direction:column;min-height:60dvh;display:flex}.empty-state{padding:var(--space-3xl) var(--space-xl);text-align:center;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state .icon,.empty-state .empty-icon{margin-bottom:var(--space-lg);opacity:.3;color:var(--text-tertiary);font-size:3rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.stagger>*{animation:.4s backwards slideUp}.stagger>:first-child{animation-delay:0s}.stagger>:nth-child(2){animation-delay:60ms}.stagger>:nth-child(3){animation-delay:.12s}.stagger>:nth-child(4){animation-delay:.18s}.stagger>:nth-child(5){animation-delay:.24s}.stagger>:nth-child(6){animation-delay:.3s}.stagger>:nth-child(7){animation-delay:.36s}.stagger>:nth-child(8){animation-delay:.42s}.spin{color:var(--accent);animation:.8s linear infinite spin}.tx-icon-wrap,.source-icon-large{background:var(--glass-bg);border-radius:var(--radius-sm);width:36px;height:36px;color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.cat-icon-wrap{width:36px;height:36px;color:var(--text-secondary);transition:color var(--transition-fast);justify-content:center;align-items:center;display:flex}.category-item.selected .cat-icon-wrap{color:var(--accent-light)}.btn-icon{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;display:inline-flex}.btn-icon:hover{background:var(--glass-bg-hover);color:var(--text-primary)}.search-wrapper{margin-bottom:var(--space-lg);position:relative}.search-wrapper .search-icon{color:var(--text-tertiary);pointer-events:none;z-index:1;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search-wrapper .search-input{padding-left:38px;margin-bottom:0!important}.tx-action-btn.delete:hover{color:var(--expense)}.legend-icon{color:var(--text-secondary);flex-shrink:0}.breakdown-icon{vertical-align:-2px;color:var(--text-secondary);margin-right:4px}.success-lucide-icon{color:var(--income)}.badge svg{vertical-align:-1px;margin-right:2px}.source-chip svg{flex-shrink:0}.page-title{align-items:center;gap:var(--space-sm);display:flex}.tx-right{margin-left:var(--space-sm);flex-direction:column;flex-shrink:0;align-items:flex-end;gap:3px;display:flex}.source-badge{opacity:.7;letter-spacing:.01em;white-space:nowrap;align-items:center;gap:3px;font-size:.65rem;font-weight:600;display:inline-flex}.source-badge svg{flex-shrink:0}
