:root{--color-income: #10b981;--color-income-light: #d1fae5;--color-expense: #ef4444;--color-expense-light: #fee2e2;--color-pending: #f59e0b;--color-pending-light: #fef3c7;--color-overdue: #dc2626;--color-overdue-light: #fef2f2;--color-savings: #3b82f6;--color-savings-light: #dbeafe;--color-neutral: #64748b;--color-neutral-light: #f1f5f9;--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--bg-hover: #e2e8f0;--border-color: #e2e8f0;--border-focus: #3b82f6;--font-sans: "Inter", system-ui, -apple-system, sans-serif;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--text-inverse: #ffffff;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 2px rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--sidebar-width: 280px;--sidebar-collapsed-width: 72px;--header-height: 64px}html.dark{--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #334155;--bg-hover: #475569;--border-color: #334155;--border-focus: #60a5fa;--text-primary: #f8fafc;--text-secondary: #cbd5e1;--text-muted: #64748b;--text-inverse: #0f172a;--shadow-sm: 0 1px 2px rgb(0 0 0 / .3);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .4);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .4);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .5);--color-income-light: #064e3b;--color-expense-light: #7f1d1d;--color-pending-light: #78350f;--color-overdue-light: #7f1d1d;--color-savings-light: #1e3a5f;--color-neutral-light: #334155}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);font-size:.875rem;line-height:1.5;color:var(--text-primary);background-color:var(--bg-secondary);min-height:100vh}#root,app-root{display:block;min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3;color:var(--text-primary)}h1{font-size:1.875rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.125rem}h5{font-size:1rem}h6{font-size:.875rem}p{color:var(--text-secondary)}a{color:var(--color-savings);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:#2563eb}input,select,textarea,button{font-family:inherit;font-size:inherit}input,select,textarea{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--color-savings-light)}input::placeholder,textarea::placeholder{color:var(--text-muted)}label{display:block;font-size:.75rem;font-weight:500;color:var(--text-secondary);margin-bottom:var(--space-xs)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);font-size:.875rem;font-weight:500;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-savings);color:var(--text-inverse)}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover)}.btn-danger{background:var(--color-expense);color:var(--text-inverse)}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary)}.btn-sm{padding:var(--space-xs) var(--space-md);font-size:.8125rem}.btn-lg{padding:var(--space-md) var(--space-xl);font-size:1rem}.icon{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;flex-shrink:0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.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}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--text-muted)}.text-sm{font-size:.8125rem}.text-xs{font-size:.75rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.fw-bold{font-weight:700}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.w-full{width:100%}.flex-1{flex:1}.mt-xs{margin-top:var(--space-xs)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mb-xs{margin-bottom:var(--space-xs)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.p-xs{padding:var(--space-xs)}.p-sm{padding:var(--space-sm)}.p-md{padding:var(--space-md)}.p-lg{padding:var(--space-lg)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.animate-fade-in{animation:fadeIn var(--transition-normal)}.animate-slide-in{animation:slideIn var(--transition-normal)}.animate-spin{animation:spin 1s linear infinite}
