@import"https://fonts.googleapis.com/css2?family=Cantarell:ital,wght@0,400;0,700;1,400;1,700&display=swap";@import"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap";@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--color-primary: hsl(250, 70%, 55%);--color-primary-light: hsl(250, 70%, 65%);--color-primary-dark: hsl(250, 70%, 45%);--color-success: hsl(145, 65%, 42%);--color-success-light: hsl(145, 65%, 52%);--color-danger: hsl(0, 75%, 55%);--color-danger-light: hsl(0, 75%, 65%);--color-warning: hsl(38, 92%, 50%);--color-warning-light: hsl(38, 92%, 60%);--color-info: hsl(200, 80%, 50%);--color-stock: hsl(220, 70%, 55%);--color-crypto: hsl(35, 90%, 50%);--color-bond: hsl(160, 50%, 45%);--color-realestate: hsl(280, 50%, 55%);--color-savings: hsl(100, 50%, 45%);--color-food: hsl(25, 80%, 55%);--color-transport: hsl(200, 70%, 50%);--color-entertainment: hsl(280, 70%, 55%);--color-utilities: hsl(180, 60%, 45%);--color-healthcare: hsl(350, 65%, 55%);--color-shopping: hsl(320, 65%, 55%);--color-education: hsl(45, 85%, 50%);--color-salary: hsl(145, 70%, 45%);--font-family: "Cantarell", -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: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--radius-sm: .375rem;--radius-md: .625rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--shadow-glow: 0 0 20px rgba(99, 102, 241, .3);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--z-dropdown: 100;--z-modal: 200;--z-toast: 300;--z-tooltip: 400}:root{--bg-primary: hsl(230, 25%, 8%);--bg-secondary: hsl(230, 22%, 12%);--bg-card: hsl(230, 20%, 16%);--bg-card-hover: hsl(230, 20%, 20%);--bg-input: hsl(230, 20%, 14%);--text-primary: hsl(0, 0%, 98%);--text-secondary: hsl(230, 10%, 70%);--text-tertiary: hsl(230, 10%, 50%);--text-muted: hsl(230, 10%, 40%);--border-color: hsl(230, 15%, 22%);--border-color-light: hsl(230, 15%, 28%);--glass-bg: rgba(255, 255, 255, .03);--glass-bg-hover: rgba(255, 255, 255, .06);--glass-border: rgba(255, 255, 255, .08);--gradient-primary: linear-gradient(135deg, hsl(250, 70%, 55%) 0%, hsl(280, 70%, 55%) 100%);--gradient-success: linear-gradient(135deg, hsl(145, 65%, 42%) 0%, hsl(160, 65%, 45%) 100%);--gradient-danger: linear-gradient(135deg, hsl(0, 75%, 55%) 0%, hsl(20, 75%, 55%) 100%);--gradient-card: linear-gradient(180deg, hsl(230, 20%, 18%) 0%, hsl(230, 22%, 14%) 100%)}[data-theme=light]{--bg-primary: hsl(220, 20%, 97%);--bg-secondary: hsl(220, 20%, 94%);--bg-card: hsl(0, 0%, 100%);--bg-card-hover: hsl(220, 20%, 98%);--bg-input: hsl(220, 20%, 96%);--text-primary: hsl(230, 25%, 15%);--text-secondary: hsl(230, 15%, 40%);--text-tertiary: hsl(230, 10%, 55%);--text-muted: hsl(230, 10%, 65%);--border-color: hsl(220, 15%, 88%);--border-color-light: hsl(220, 15%, 92%);--glass-bg: rgba(255, 255, 255, .7);--glass-bg-hover: rgba(255, 255, 255, .9);--glass-border: rgba(255, 255, 255, .5);--gradient-card: linear-gradient(180deg, hsl(0, 0%, 100%) 0%, hsl(220, 20%, 98%) 100%);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .03);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .07), 0 2px 4px -1px rgba(0, 0, 0, .04);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -2px rgba(0, 0, 0, .03)}*,*: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);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:1.6;color:var(--text-primary);background-color:var(--bg-primary);min-height:100vh;min-height:100dvh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:1.3;color:var(--text-primary)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}p{color:var(--text-secondary);margin-bottom:var(--spacing-md)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-light)}input,textarea,select,button{font-family:inherit;font-size:inherit;color:inherit;border:none;outline:none;background:none}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}button{cursor:pointer;-webkit-user-select:none;user-select:none}ul,ol{list-style:none}img,svg,video{display:block;max-width:100%;height:auto}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb{background:var(--border-color-light);border-radius:var(--radius-full);transition:background var(--transition-fast)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}*{scrollbar-width:thin;scrollbar-color:var(--border-color-light) var(--bg-secondary)}::selection{background-color:var(--color-primary);color:#fff}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fade-in{animation:fadeIn var(--transition-normal) ease-out}.slide-up{animation:slideUp var(--transition-normal) ease-out}.scale-in{animation:scaleIn var(--transition-fast) ease-out}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,var(--bg-card) 25%,var(--bg-card-hover) 50%,var(--bg-card) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-md)}.container{width:100%;max-width:1400px;margin:0 auto;padding:0 var(--spacing-md)}@media(min-width:768px){.container{padding:0 var(--spacing-lg)}}@media(min-width:1024px){.container{padding:0 var(--spacing-xl)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);border-radius:var(--radius-lg);transition:all var(--transition-fast);cursor:pointer;border:none;outline:none;text-decoration:none;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-md)}.btn-primary:hover:not(:disabled){box-shadow:var(--shadow-lg),var(--shadow-glow);transform:translateY(-1px)}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--bg-card-hover);border-color:var(--border-color-light)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--glass-bg);color:var(--text-primary)}.btn-danger{background:var(--gradient-danger);color:#fff}.btn-success{background:var(--gradient-success);color:#fff}.btn-icon{width:44px;height:44px;padding:0;border-radius:var(--radius-full)}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-lg)}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm)}.card{background:var(--gradient-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:var(--spacing-lg);transition:all var(--transition-normal)}.card:hover{border-color:var(--border-color-light)}.card-glass{background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-border)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.card-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.card-subtitle{font-size:var(--font-size-sm);color:var(--text-tertiary);margin-top:var(--spacing-xs)}.stat-card{display:flex;flex-direction:column;gap:var(--spacing-sm)}.stat-card-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg);font-size:var(--font-size-xl);background:var(--glass-bg)}.stat-card-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary)}.stat-card-label{font-size:var(--font-size-sm);color:var(--text-tertiary)}.stat-card-change{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.stat-card-change.positive{color:var(--color-success)}.stat-card-change.negative{color:var(--color-danger)}.input-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.input-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary)}.input{width:100%;padding:var(--spacing-md);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-primary);font-size:var(--font-size-base);transition:all var(--transition-fast)}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #6366f133}.input::placeholder{color:var(--text-muted)}.input-lg{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--bg-secondary);border-top:1px solid var(--border-color);padding:var(--spacing-sm) var(--spacing-md);padding-bottom:max(var(--spacing-sm),env(safe-area-inset-bottom));z-index:var(--z-dropdown)}.bottom-nav-list{display:flex;justify-content:space-around;align-items:center;max-width:500px;margin:0 auto}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm);color:var(--text-tertiary);text-decoration:none;transition:color var(--transition-fast);border-radius:var(--radius-lg);min-width:64px}.bottom-nav-item:hover{color:var(--text-secondary)}.bottom-nav-item.active{color:var(--color-primary)}.bottom-nav-icon{font-size:1.5rem}.bottom-nav-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.header{position:sticky;top:0;background:var(--bg-primary);border-bottom:1px solid var(--border-color);padding:var(--spacing-md);padding-top:max(var(--spacing-md),env(safe-area-inset-top));z-index:var(--z-dropdown)}.header-content{display:flex;align-items:center;justify-content:space-between;max-width:1400px;margin:0 auto}.header-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--text-primary)}.header-nav{display:flex;align-items:center;gap:var(--spacing-sm)}.month-selector{display:flex;align-items:center;gap:var(--spacing-md)}.month-selector-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--glass-bg);border:1px solid var(--border-color);border-radius:var(--radius-full);color:var(--text-secondary);font-size:var(--font-size-lg);cursor:pointer;transition:all var(--transition-fast)}.month-selector-btn:hover{background:var(--glass-bg-hover);color:var(--text-primary);border-color:var(--border-color-light)}.month-selector-label{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);min-width:180px;text-align:center}.layout{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.main-content{flex:1;padding:var(--spacing-md);padding-bottom:calc(80px + var(--spacing-md));max-width:1400px;margin:0 auto;width:100%}@media(min-width:768px){.main-content{padding:var(--spacing-lg);padding-bottom:calc(80px + var(--spacing-lg))}}.transaction-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);transition:all var(--transition-fast)}.transaction-item:hover{background:var(--bg-card-hover);border-color:var(--border-color-light)}.transaction-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg);font-size:var(--font-size-xl);background:var(--glass-bg);flex-shrink:0}.transaction-details{flex:1;min-width:0}.transaction-title{font-weight:var(--font-weight-medium);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.transaction-category{font-size:var(--font-size-sm);color:var(--text-tertiary)}.transaction-amount{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);white-space:nowrap}.transaction-amount.income{color:var(--color-success)}.transaction-amount.expense{color:var(--color-danger)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl) var(--spacing-lg);text-align:center}.empty-state-icon{font-size:4rem;margin-bottom:var(--spacing-lg);opacity:.5}.empty-state-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--spacing-sm)}.empty-state-description{color:var(--text-tertiary);max-width:300px}.fab{position:fixed;bottom:calc(80px + var(--spacing-lg));right:var(--spacing-lg);width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--gradient-primary);color:#fff;border:none;border-radius:var(--radius-full);font-size:var(--font-size-2xl);cursor:pointer;box-shadow:var(--shadow-lg),var(--shadow-glow);transition:all var(--transition-fast);z-index:var(--z-dropdown)}.fab:hover{transform:scale(1.05);box-shadow:var(--shadow-xl),var(--shadow-glow)}.fab:active{transform:scale(.95)}.modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;z-index:var(--z-modal);padding:var(--spacing-md)}@media(min-width:768px){.modal-overlay{align-items:center}}.modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;animation:slideUp var(--transition-normal) ease-out}@media(min-width:768px){.modal{border-radius:var(--radius-xl)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.modal-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.modal-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--glass-bg);border:none;border-radius:var(--radius-full);color:var(--text-secondary);font-size:var(--font-size-xl);cursor:pointer;transition:all var(--transition-fast)}.modal-close:hover{background:var(--glass-bg-hover);color:var(--text-primary)}.modal-body{padding:var(--spacing-lg)}.modal-footer{display:flex;gap:var(--spacing-md);padding:var(--spacing-lg);border-top:1px solid var(--border-color)}.modal-footer .btn{flex:1}.balance-card{background:var(--gradient-primary);border:none;color:#fff;position:relative;overflow:hidden}.balance-card:before{content:"";position:absolute;top:-50%;right:-50%;width:100%;height:100%;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);pointer-events:none}.balance-card-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:var(--spacing-sm)}.balance-card-label{font-size:var(--font-size-sm);opacity:.8;margin-bottom:var(--spacing-xs)}.balance-card-amount{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-md)}@media(min-width:400px){.balance-card-amount{font-size:var(--font-size-3xl)}}.balance-card-details{display:flex;flex-direction:column;gap:var(--spacing-sm)}@media(min-width:500px){.balance-card-details{flex-direction:row;flex-wrap:wrap;gap:var(--spacing-lg)}}.balance-card-detail{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xs) 0;border-bottom:1px solid rgba(255,255,255,.1)}@media(min-width:500px){.balance-card-detail{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs);padding:0;border-bottom:none}}.balance-card-detail-label{font-size:var(--font-size-xs);opacity:.7}.balance-card-detail-value{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}@media(min-width:500px){.balance-card-detail-value{font-size:var(--font-size-lg)}}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-md)}.stack{display:flex;flex-direction:column;gap:var(--spacing-md)}.stack-sm{gap:var(--spacing-sm)}.stack-lg{gap:var(--spacing-lg)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.input-error{border-color:var(--color-danger)!important;box-shadow:0 0 0 2px #ef444433}.input-error:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px #ef44444d}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background:#ec1313;box-shadow:var(--shadow-md)}
