@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";.sidebar{position:fixed;top:0;left:0;width:320px;height:100vh;background-color:#1e293b;border-right:2px solid #334155;display:flex;flex-direction:column;z-index:9999;transition:transform .3s ease-in-out}.sidebar-header{padding:24px;border-bottom:1px solid var(--border-color, rgba(148, 163, 184, .1))}.logo-container{display:flex;align-items:center;gap:12px}.logo-icon{font-size:24px}.logo-text{font-size:20px;font-weight:700;color:var(--text-primary, #f1f5f9);margin:0;letter-spacing:-.5px}.sidebar-nav{flex:1;padding:24px 16px;overflow-y:auto}.nav-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.nav-link{display:flex;align-items:center;gap:16px;padding:12px 16px;text-decoration:none;color:var(--text-secondary, #94a3b8);border-radius:8px;font-weight:500;transition:all .2s ease;border-left:3px solid transparent}.nav-link:hover{background-color:#f1f5f90d;color:var(--text-primary, #f1f5f9)}.nav-link.active{background-color:#6366f11a;color:var(--accent-primary, #6366f1);border-left-color:var(--accent-primary, #6366f1)}.nav-icon{font-size:18px}.sidebar-footer{padding:24px;border-top:1px solid var(--border-color, rgba(148, 163, 184, .1))}.user-info{margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--border-color, rgba(148, 163, 184, .1))}.user-email{font-size:14px;color:var(--text-secondary, #94a3b8);word-break:break-all}.signout-button{display:flex;align-items:center;gap:12px;width:100%;padding:12px;background:transparent;border:none;color:var(--text-secondary, #94a3b8);cursor:pointer;border-radius:8px;font-weight:500;transition:all .2s ease;font-family:inherit}.signout-button:hover{background-color:#f43f5e1a;color:var(--accent-danger, #f43f5e)}.mobile-toggle{display:none;position:fixed;top:16px;left:16px;z-index:101;background-color:var(--bg-secondary, #1e293b);color:var(--text-primary, #f1f5f9);border:1px solid var(--border-color, rgba(148, 163, 184, .1));border-radius:8px;padding:8px 12px;font-size:20px;cursor:pointer}.sidebar-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:99}@media(max-width:768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.mobile-toggle,.sidebar-overlay{display:block}}.app-layout{display:flex;min-height:100vh;background-color:var(--bg-primary, #0f172a);color:var(--text-primary, #f1f5f9)}.main-content{flex:1;margin-left:320px;padding:32px;overflow-y:auto;min-height:100vh;box-sizing:border-box}@media(max-width:768px){.main-content{margin-left:0;padding:72px 16px 24px}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--bg-primary) 0%,#1e1b4b 100%);font-family:var(--font-body);color:var(--text-primary)}.login-card{background:var(--bg-card);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:16px;padding:40px;width:100%;max-width:400px;box-shadow:0 25px 50px -12px #00000080;animation:float 6s ease-in-out infinite}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}.login-header{text-align:center;margin-bottom:32px}.login-header h1{font-size:2rem;margin:0 0 8px;color:var(--text-primary)}.login-header p{color:var(--text-secondary);margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:.9rem;color:var(--text-secondary)}.form-group input{background:#0f172a80;border:1px solid var(--border-color);border-radius:8px;padding:12px;color:var(--text-primary);font-family:var(--font-body);transition:border-color .2s}.form-group input:focus{outline:none;border-color:var(--accent-primary)}.submit-btn{background:var(--accent-primary);color:#fff;border:none;border-radius:8px;padding:14px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s;margin-top:8px}.submit-btn:hover:not(:disabled){background:#4f46e5}.submit-btn:disabled{opacity:.7;cursor:not-allowed}.error-message{background:#f43f5e1a;border:1px solid var(--accent-danger);color:var(--accent-danger);padding:12px;border-radius:8px;font-size:.9rem;text-align:center}.toggle-mode{margin-top:24px;text-align:center;font-size:.9rem;color:var(--text-secondary)}.toggle-btn{background:none;border:none;color:var(--accent-primary);font-weight:600;cursor:pointer;padding:0;font-family:inherit}.toggle-btn:hover{text-decoration:underline}.balance-card{background:var(--bg-card, rgba(30, 41, 59, .8));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color, rgba(148, 163, 184, .1));border-left:4px solid var(--wallet-color);border-radius:16px;padding:24px;font-family:var(--font-body, "Inter", sans-serif);color:var(--text-primary, #f1f5f9);transition:transform .2s ease,box-shadow .2s ease;position:relative;overflow:hidden}.balance-card:hover{transform:translateY(-4px);box-shadow:0 10px 25px -5px #00000080}.balance-card:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,var(--wallet-color) 0%,transparent 50%);opacity:.15;pointer-events:none}.bc-header{margin-bottom:16px}.bc-title{margin:0;font-size:1.125rem;font-weight:600;color:var(--text-primary, #f1f5f9)}.bc-balance-section{margin-bottom:24px}.bc-label{display:block;font-size:.875rem;color:var(--text-secondary, #94a3b8);margin-bottom:4px}.bc-balance{margin:0;font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:2rem;font-weight:700}.bc-details{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--border-color, rgba(148, 163, 184, .1));padding-top:16px}.bc-stat{display:flex;flex-direction:column}.bc-stat-label{font-size:.75rem;color:var(--text-secondary, #94a3b8);margin-bottom:4px;text-transform:uppercase;letter-spacing:.05em}.bc-stat-value{font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:1rem;font-weight:600}.positive{color:var(--accent-success, #10b981)}.negative{color:var(--accent-danger, #f43f5e)}.spending-chart-container{background:var(--bg-card, rgba(30, 41, 59, .8));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color, rgba(148, 163, 184, .1));border-radius:16px;padding:24px;width:100%}.chart-title{margin:0 0 24px;font-family:var(--font-body, "Inter", sans-serif);font-size:1.125rem;font-weight:600;color:var(--text-primary, #f1f5f9)}.chart-wrapper{height:400px;width:100%}.chart-tooltip{background:#0f172af2;border:1px solid var(--border-color, rgba(148, 163, 184, .2));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:12px 16px;border-radius:8px;box-shadow:0 4px 6px -1px #00000080}.tooltip-title{margin:0 0 4px;font-family:var(--font-body, "Inter", sans-serif);font-weight:500;color:var(--text-primary, #f1f5f9)}.tooltip-value{margin:0;font-family:var(--font-mono, "JetBrains Mono", monospace);font-weight:700;color:var(--accent-danger, #f43f5e)}.tooltip-wallet{margin:4px 0 0;font-family:var(--font-body, "Inter", sans-serif);font-size:.75rem;color:var(--text-secondary, #94a3b8)}.trend-chart-container{background:var(--bg-card, rgba(30, 41, 59, .8));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color, rgba(148, 163, 184, .1));border-radius:16px;padding:24px;width:100%}.trend-chart-title{margin:0 0 24px;font-family:var(--font-body, "Inter", sans-serif);font-size:1.125rem;font-weight:600;color:var(--text-primary, #f1f5f9)}.trend-chart-wrapper{height:300px;width:100%}.trend-tooltip{background:#0f172af2;border:1px solid var(--border-color, rgba(148, 163, 184, .2));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:12px 16px;border-radius:8px;box-shadow:0 4px 6px -1px #00000080}.trend-tooltip-label{margin:0 0 4px;font-family:var(--font-body, "Inter", sans-serif);font-size:.875rem;font-weight:500;color:var(--text-secondary, #94a3b8)}.trend-tooltip-value{margin:0;font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:1.125rem;font-weight:700;color:var(--text-primary, #f1f5f9)}.pie-chart-container{background:var(--bg-card, rgba(30, 41, 59, .8));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color, rgba(148, 163, 184, .1));border-radius:16px;padding:24px;width:100%}.pie-chart-title{margin:0 0 24px;font-family:var(--font-body, "Inter", sans-serif);font-size:1.125rem;font-weight:600;color:var(--text-primary, #f1f5f9)}.pie-chart-wrapper{height:350px;width:100%;position:relative}.pie-chart-center-text{position:absolute;top:45%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;pointer-events:none;z-index:10}.pie-center-label{font-family:var(--font-body, "Inter", sans-serif);font-size:.875rem;color:var(--text-secondary, #94a3b8);margin-bottom:4px}.pie-center-value{font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:1.25rem;font-weight:700;color:var(--text-primary, #f1f5f9)}.pie-label{font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:11px;font-weight:600;text-shadow:0px 1px 3px rgba(0,0,0,.8)}.pie-tooltip{background:#0f172af2;border:1px solid var(--border-color, rgba(148, 163, 184, .2));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:12px 16px;border-radius:8px;box-shadow:0 4px 6px -1px #00000080;min-width:150px}.pie-tooltip-title{margin:0 0 8px;font-family:var(--font-body, "Inter", sans-serif);font-weight:500;color:var(--text-primary, #f1f5f9);display:flex;align-items:center;gap:8px}.pie-tooltip-color{width:10px;height:10px;border-radius:50%;display:inline-block}.pie-tooltip-value{margin:0 0 4px;font-family:var(--font-mono, "JetBrains Mono", monospace);font-weight:700;color:var(--text-primary, #f1f5f9)}.pie-tooltip-percent{margin:0;font-family:var(--font-body, "Inter", sans-serif);font-size:.75rem;color:var(--text-secondary, #94a3b8)}.month-selector{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:24px;position:relative;z-index:10}.nav-btn{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-primary);width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;font-size:1.2rem}.nav-btn:hover{background:var(--bg-secondary);transform:scale(1.1)}.current-date-display{display:flex;gap:8px;font-size:1.5rem;font-weight:600;color:var(--text-primary)}.dropdown-container{position:relative}.month-name,.year-name,.dropdown-toggle{cursor:pointer;padding:4px 8px;border-radius:8px;transition:background .2s;color:var(--text-primary);background:transparent;border:none;font-size:1.5rem;font-weight:600}.month-name:hover,.year-name:hover{background:#ffffff1a}.dropdown-menu{position:absolute;top:100%;left:50%;transform:translate(-50%);background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:8px;margin-top:8px;display:grid;grid-template-columns:repeat(3,1fr);gap:4px;box-shadow:0 10px 25px #00000080;z-index:20;width:300px}.year-menu{grid-template-columns:repeat(2,1fr);width:200px}.dropdown-item{padding:8px 12px;text-align:center;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background .2s;color:var(--text-primary)}.dropdown-item:hover{background:var(--bg-secondary)}.dropdown-item.active{background:var(--accent-primary);color:#fff;font-weight:700}.transparent-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:15}.nav-arrow:disabled,.nav-btn:disabled,.dropdown-item:disabled{opacity:.3;cursor:not-allowed;background:var(--bg-card);color:var(--text-muted)}.dropdown-item:disabled:hover{background:transparent}.category-filter-container{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:16px;margin-bottom:24px}.filter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.filter-header h4{margin:0;color:var(--text-primary);font-weight:500}.quick-actions{display:flex;gap:8px}.quick-btn{background:transparent;border:none;color:var(--text-secondary);font-size:.8rem;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s}.quick-btn:hover:not(:disabled){background:var(--bg-secondary);color:var(--text-primary)}.quick-btn:disabled{opacity:.5;cursor:not-allowed}.category-chips{display:flex;flex-wrap:wrap;gap:8px}.cat-chip{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-secondary);cursor:pointer;transition:all .2s}.cat-chip.included{border-color:var(--accent-primary);background:#6366f11a;color:var(--text-primary)}.cat-chip.excluded{opacity:.5;text-decoration:line-through;color:var(--text-secondary)}.cat-chip:hover{transform:translateY(-1px)}.dashboard-container{padding:24px;color:var(--text-primary);font-family:var(--font-body)}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.dashboard-header h1{margin:0;font-size:1.75rem}.header-controls{display:flex;align-items:center;gap:24px}.header-month-selector .month-selector{margin-bottom:0}.timeframe-toggle{display:flex;background:var(--bg-secondary);border-radius:8px;padding:4px}.timeframe-toggle button{padding:6px 16px;border-radius:6px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;font-weight:500;text-transform:capitalize;transition:all .2s}.timeframe-toggle button:hover{color:var(--text-primary)}.timeframe-toggle button.active{background:var(--accent-primary);color:#fff}@media(max-width:768px){.dashboard-header{flex-direction:column;align-items:flex-start;gap:16px}.header-controls{width:100%;justify-content:space-between;flex-wrap:wrap}}.privacy-toggle-btn:hover{background:#ffffff1a!important;color:var(--text-primary)!important}.dashboard-filters{margin-bottom:24px}.dashboard-balances{display:flex;margin-bottom:0}.dashboard-balances.single-balance{width:100%}.dashboard-balances>*{flex:1}.dashboard-content{display:grid;grid-template-columns:1fr 250px;gap:24px}@media(max-width:900px){.dashboard-content{grid-template-columns:1fr}}.dashboard-main{display:flex;flex-direction:column;gap:24px}.dashboard-separated{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media(max-width:1200px){.dashboard-separated{grid-template-columns:1fr}}.wallet-section{display:flex;flex-direction:column;gap:24px}.wallet-section-header{padding-bottom:12px;margin-bottom:8px}.wallet-section-header h2{margin:0;font-size:1.5rem;color:var(--text-primary)}.chart-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:20px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.chart-section h3{margin-top:0;margin-bottom:16px;font-size:1.15rem;color:var(--text-primary)}.wallet-tabs-container{display:flex;flex-direction:column;gap:16px;margin-top:8px}.wallet-tabs-header{display:flex;gap:8px;background:var(--bg-card);padding:6px;border-radius:12px;border:1px solid var(--border-color);overflow-x:auto}.wallet-tab-btn{flex:1;padding:10px 16px;border:none;background:transparent;color:var(--text-secondary);font-family:var(--font-body);font-weight:500;font-size:.9rem;border-radius:8px;cursor:pointer;transition:all .2s ease;white-space:nowrap}.wallet-tab-btn:hover{color:var(--text-primary);background:#ffffff0d}.wallet-tab-btn.active{background:var(--bg-secondary);color:var(--text-primary);box-shadow:0 2px 8px #0003}.wallet-tab-content{min-height:350px}.tab-pane{display:flex;flex-direction:column;height:100%}.fade-in{animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.averages-section-tab{padding-top:8px}.averages-table{width:100%;border-collapse:collapse}.averages-table th,.averages-table td{padding:12px;text-align:left;border-bottom:1px solid var(--border-color)}.averages-table th{color:var(--text-secondary);font-weight:500}.averages-table td:last-child{text-align:right;font-family:var(--font-mono)}.empty-row{text-align:center!important;color:var(--text-secondary);font-style:italic;padding:24px!important}.dashboard-loading{display:flex;justify-content:center;align-items:center;height:calc(100vh - 100px);color:var(--text-secondary);font-size:1.2rem}.wallet-filter{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:24px;justify-content:center}.wallet-pill{padding:8px 16px;border-radius:999px;border:1px solid var(--border-color);background:transparent;color:var(--text-primary);font-family:var(--font-body);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.wallet-pill:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.wallet-pill.active{color:#fff;box-shadow:0 4px 12px #0003}.multi-select-container{position:relative;display:inline-block;min-width:160px}.multi-select-btn{width:100%;display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-primary);font-size:.9rem;cursor:pointer;transition:border-color .2s}.multi-select-btn:hover{border-color:#94a3b880}.multi-select-btn.active{border-color:var(--accent-primary)}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}.dropdown-arrow{font-size:.7rem;color:var(--text-secondary);margin-left:8px}.multi-select-menu{position:absolute;top:calc(100% + 4px);left:0;width:max-content;min-width:100%;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;z-index:50;max-height:250px;overflow-y:auto;padding:8px 0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.multi-select-item{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;transition:background .2s}.multi-select-item:hover{background:#ffffff0d}.multi-select-item input[type=checkbox]{cursor:pointer;accent-color:var(--accent-primary)}.item-label{font-size:.9rem;color:var(--text-primary)}.multi-select-empty{padding:8px 12px;color:var(--text-secondary);font-size:.9rem;text-align:center}.expenses-container{padding:24px;color:var(--text-primary)}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-header h1{margin:0;font-size:1.75rem}.header-actions{display:flex;gap:16px;align-items:center}.add-btn{background:var(--accent-primary);color:#fff;border:none;padding:8px 16px;border-radius:8px;font-weight:600;cursor:pointer;transition:background .2s}.add-btn:hover{background:#4f46e5}.filters-section{margin-bottom:24px}.data-table-container{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;overflow-x:auto;overflow-y:hidden;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:16px;text-align:left;border-bottom:1px solid var(--border-color)}.data-table th{background:#0f172a66;color:var(--text-secondary);font-weight:600;font-size:.9rem}.amount-col{text-align:right!important;font-family:var(--font-mono)}.expense-amount{color:var(--accent-danger)}.actions-col{display:flex;gap:8px}.action-btn{background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;transition:background .2s}.action-btn.edit:hover{background:#ffffff1a}.action-btn.delete:hover{background:#f43f5e33;color:var(--accent-danger)}.empty-state{padding:48px;text-align:center;color:var(--text-secondary)}.total-label{text-align:right!important;font-weight:600}.total-amount{font-weight:700}.data-table tfoot th,.data-table tfoot td{background:#0f172a99;border-top:2px solid var(--border-color)}.income-amount-group:focus-within{border-color:var(--accent-success)}.income-amount-input::placeholder{color:#10b98180}.btn-income-save{background:var(--accent-success)}.btn-income-save:hover{background:#059669}.income-container{padding:24px;color:var(--text-primary)}.add-btn.income-btn{background:var(--accent-success)}.add-btn.income-btn:hover{background:#059669}.income-amount{color:var(--accent-success)}.calendar-container{background:var(--bg-card, rgba(30, 41, 59, .8));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color, rgba(148, 163, 184, .1));border-radius:16px;padding:24px;width:100%}.calendar-header{margin-bottom:24px}.calendar-title{margin:0;font-family:var(--font-body, "Inter", sans-serif);font-size:1.25rem;font-weight:600;color:var(--text-primary, #f1f5f9)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.calendar-weekday{text-align:center;font-family:var(--font-body, "Inter", sans-serif);font-size:.75rem;font-weight:600;color:var(--text-secondary, #94a3b8);text-transform:uppercase;padding-bottom:8px}.calendar-day{background:#0f172a4d;border:1px solid var(--border-color, rgba(148, 163, 184, .05));border-radius:12px;min-height:80px;padding:8px;display:flex;flex-direction:column;transition:all .2s ease;cursor:pointer;position:relative;overflow:hidden}.calendar-day:hover{background:#0f172a99;border-color:#6366f14d}.calendar-day.dimmed{opacity:.4}.calendar-day.today{border:1px solid var(--accent-primary, #6366f1)}.calendar-day.selected{background:#6366f126;border:1px solid var(--accent-primary, #6366f1)}.day-number{font-family:var(--font-body, "Inter", sans-serif);font-size:.875rem;font-weight:500;color:var(--text-primary, #f1f5f9);align-self:flex-end}.day-indicators{margin-top:auto;display:flex;flex-direction:column;gap:4px}.indicator{border-radius:4px;padding:2px 4px;display:flex;align-items:center;font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:.65rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.income-indicator{background-color:rgba(16,185,129,var(--indicator-opacity, .5));color:#fff}.expense-indicator{background-color:rgba(244,63,94,var(--indicator-opacity, .5));color:#fff}.indicator-amount{text-shadow:0px 1px 2px rgba(0,0,0,.5)}.calendar-container{padding:24px;color:var(--text-primary)}.calendar-layout{display:flex;gap:24px;align-items:flex-start}.calendar-main{flex:1;background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:20px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.calendar-details-panel{width:320px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:20px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);position:sticky;top:24px}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.panel-header h2{margin:0;font-size:1.25rem}.close-btn{background:none;border:none;color:var(--text-secondary);font-size:1.2rem;cursor:pointer}.close-btn:hover{color:var(--text-primary)}.day-summary{background:#0f172a80;border-radius:8px;padding:16px;margin-bottom:20px}.summary-item{display:flex;justify-content:space-between;margin-bottom:8px;font-size:.9rem}.summary-item.total{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-color);font-weight:600;font-size:1rem}.amount{font-family:var(--font-mono)}.amount.positive{color:var(--accent-success)}.amount.negative{color:var(--accent-danger)}.panel-actions{display:flex;gap:12px;margin-bottom:24px}.panel-actions button{flex:1}.day-transactions h3{font-size:1rem;margin-bottom:16px;color:var(--text-secondary)}.transaction-item{display:flex;justify-content:space-between;align-items:center;padding:12px;border-bottom:1px solid var(--border-color)}.transaction-item:last-child{border-bottom:none}.tx-details{display:flex;flex-direction:column}.tx-desc{font-weight:500}.tx-amount{font-family:var(--font-mono)}.transaction-item.income .tx-amount{color:var(--accent-success)}.transaction-item.expense .tx-amount{color:var(--accent-danger)}.no-data{color:var(--text-secondary);font-size:.9rem;text-align:center;padding:20px 0}.tx-delete-btn{background:transparent;border:none;color:#ff4d4d;font-weight:700;cursor:pointer;padding:2px 6px;border-radius:4px;transition:background .2s}.tx-delete-btn:hover{background:#ff4d4d33}@media(max-width:900px){.calendar-layout{flex-direction:column}.calendar-details-panel{width:100%;position:static}}.recurring-modal{max-width:600px}.day-picker{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;background:var(--bg-secondary);padding:16px;border-radius:12px;border:1px solid var(--border-color)}.day-btn{background:transparent;border:1px solid transparent;color:var(--text-primary);border-radius:6px;padding:8px 0;cursor:pointer;font-family:var(--font-body);transition:all .2s}.day-btn:hover{background:var(--bg-card);border-color:var(--border-color)}.day-btn.selected{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary);font-weight:700}.toggle-group{display:flex;flex-direction:column}.status-toggle{display:flex;align-items:center;gap:12px;cursor:pointer;margin-top:8px}.toggle-switch{width:48px;height:24px;background:var(--bg-secondary);border-radius:12px;position:relative;transition:background .3s;border:1px solid var(--border-color)}.toggle-switch.active{background:var(--accent-success);border-color:var(--accent-success)}.toggle-thumb{width:20px;height:20px;background:#fff;border-radius:50%;position:absolute;top:1px;left:2px;transition:transform .3s}.toggle-switch.active .toggle-thumb{transform:translate(22px)}.status-toggle span{color:var(--text-primary);font-weight:500}.type-toggle-group{display:flex;gap:10px;margin-bottom:20px}.type-btn{flex:1;padding:10px;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;font-weight:500;transition:all .2s ease}.type-btn.expense-active{background:#ef44441a;color:var(--accent-danger);border-color:#ef44444d}.type-btn.income-active{background:#10b9811a;color:var(--accent-success);border-color:#10b9814d}.income-amount-group:focus-within{border-color:var(--accent-success)!important}.income-amount-input{color:var(--accent-success)!important}.income-amount-input::placeholder{color:#10b98180!important}.recurring-container{padding:24px;color:var(--text-primary)}.recurring-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}.recurring-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:20px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:opacity .3s}.recurring-card.paused{opacity:.6}.rc-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.item-main{flex:1;min-width:0;padding-right:12px}.item-main h3{margin:0;font-size:1.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}.wallet-badge{font-size:.8rem;font-weight:600}.item-right{flex-shrink:0;text-align:right}.item-amount{font-family:var(--font-mono);font-weight:600;font-size:1.1rem;white-space:nowrap}.rc-details{display:flex;gap:8px;margin-bottom:16px}.tag{background:#0f172a80;padding:4px 8px;border-radius:4px;font-size:.8rem}.rc-schedule{background:#0003;padding:12px;border-radius:8px;margin-bottom:16px}.rc-schedule p{margin:0 0 4px;font-size:.9rem}.last-posted{color:var(--text-secondary);font-size:.8rem!important}.rc-actions{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border-color);padding-top:16px}.status-toggle{display:flex;align-items:center;gap:8px;font-size:.9rem}.action-buttons{display:flex;gap:8px}.switch{position:relative;display:inline-block;width:44px;height:24px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--bg-secondary);transition:.4s}.slider:before{position:absolute;content:"";height:16px;width:16px;left:4px;bottom:4px;background-color:#fff;transition:.4s}input:checked+.slider{background-color:var(--accent-success)}input:checked+.slider:before{transform:translate(20px)}.slider.round{border-radius:24px}.slider.round:before{border-radius:50%}.type-badge{padding:4px 8px;border-radius:4px;font-size:.8rem;font-weight:500}.type-badge.income{background:#10b98133;color:var(--accent-success)}.type-badge.expense{background:#f43f5e33;color:var(--accent-danger)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0f172ab3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;padding:24px;width:90%;max-width:500px;box-shadow:0 25px 50px -12px #00000080}.slide-up{animation:slideUp .3s ease-out forwards}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-content h2{margin-top:0;margin-bottom:24px;color:var(--text-primary);font-weight:600}.expense-form .form-group{margin-bottom:16px;display:flex;flex-direction:column}.expense-form label{color:var(--text-secondary);font-size:.875rem;margin-bottom:8px;font-weight:500}.expense-form input[type=text],.expense-form input[type=date],.expense-form select{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:10px 12px;color:var(--text-primary);font-family:var(--font-body);font-size:1rem;outline:none;transition:border-color .2s}.expense-form input[type=text]:focus,.expense-form input[type=date]:focus,.expense-form select:focus{border-color:var(--accent-primary)}.amount-group{position:relative;display:flex;align-items:center!important;flex-direction:row!important;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:12px;padding:16px;margin-bottom:24px!important}.amount-group:focus-within{border-color:var(--accent-danger)}.currency-symbol{color:var(--text-secondary);font-size:1.5rem;font-weight:500;margin-right:8px}.amount-input{background:transparent;border:none!important;color:var(--accent-danger)!important;font-size:2rem!important;font-weight:700;width:100%;outline:none;font-family:var(--font-mono)!important}.amount-input::placeholder{color:#f43f5e80}.form-row{display:flex;gap:16px}.form-row .form-group{flex:1}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.btn-cancel{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary);padding:10px 20px;border-radius:8px;cursor:pointer;font-weight:500;transition:all .2s}.btn-cancel:hover{background:var(--bg-secondary);color:var(--text-primary)}.btn-save{background:var(--accent-primary);border:none;color:#fff;padding:10px 24px;border-radius:8px;cursor:pointer;font-weight:500;transition:background .2s}.btn-save:hover{background:#4f46e5}.category-modal{max-width:400px}.emoji-picker{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;background:var(--bg-secondary);padding:16px;border-radius:12px;border:1px solid var(--border-color);max-height:200px;overflow-y:auto}.emoji-btn{background:transparent;border:2px solid transparent;font-size:1.5rem;border-radius:8px;padding:8px 0;cursor:pointer;transition:all .2s;display:flex;justify-content:center;align-items:center}.emoji-btn:hover{background:var(--bg-card);border-color:var(--border-color);transform:scale(1.1)}.emoji-btn.selected{background:#6366f133;border-color:var(--accent-primary)}.settings-container{padding:24px;color:var(--text-primary)}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:24px}.settings-section h2{font-size:1.25rem;margin-top:0;margin-bottom:16px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-header h2{margin:0}.settings-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:20px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.list-group{margin-bottom:20px}.list-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--border-color)}.list-item:last-child{border-bottom:none}.item-info{display:flex;align-items:center;gap:12px}.color-swatch{width:16px;height:16px;border-radius:50%;display:inline-block}.pm-type-badge{font-size:.7rem;text-transform:uppercase;padding:2px 6px;border-radius:4px;background:#ffffff1a}.add-inline{display:flex;gap:8px;background:#0003;padding:12px;border-radius:8px}.add-inline input[type=text],.add-inline select{flex:1;min-width:0;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);border-radius:4px;padding:8px}.color-picker{width:36px;height:36px;padding:0;border:none;border-radius:4px;cursor:pointer;background:none}.add-btn.small{padding:8px 16px}.settings-section.full-width{grid-column:1 / -1}.categories-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.category-item{background:#0f172a80;border:1px solid var(--border-color);padding:12px;border-radius:8px;display:flex;flex-direction:column;align-items:center;gap:8px;position:relative}.cat-icon{font-size:1.5rem}.cat-name{font-size:.85rem;text-align:center}.category-item .delete{position:absolute;top:4px;right:4px;font-size:.7rem;padding:2px}:root{--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #334155;--bg-card: rgba(30, 41, 59, .8);--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--accent-primary: #6366f1;--accent-primary-hover: #818cf8;--accent-success: #10b981;--accent-success-hover: #34d399;--accent-danger: #f43f5e;--accent-danger-hover: #fb7185;--accent-warning: #f59e0b;--border-color: rgba(148, 163, 184, .1);--border-color-hover: rgba(148, 163, 184, .2);--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);--radius-sm: 6px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--transition-fast: .15s ease;--transition-normal: .25s ease;--font-body: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;overflow-x:hidden}a{color:inherit;text-decoration:none}button{background:none;border:none;font:inherit;cursor:pointer}.glass-card{background:var(--bg-card);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:transform var(--transition-normal),border-color var(--transition-normal),box-shadow var(--transition-normal)}.glass-card:hover{transform:translateY(-2px);border-color:var(--border-color-hover);box-shadow:var(--shadow-lg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;border-radius:var(--radius-sm);font-weight:500;transition:all var(--transition-fast);outline:none}.btn:focus-visible{box-shadow:0 0 0 2px var(--bg-primary),0 0 0 4px var(--accent-primary)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--accent-primary);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--accent-primary-hover)}.btn-success{background-color:var(--accent-success);color:#fff}.btn-success:hover:not(:disabled){background-color:var(--accent-success-hover)}.btn-danger{background-color:var(--accent-danger);color:#fff}.btn-danger:hover:not(:disabled){background-color:var(--accent-danger-hover)}.btn-ghost{background-color:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background-color:var(--bg-tertiary);color:var(--text-primary)}.btn-sm{padding:.25rem .5rem;font-size:.875rem}.btn-lg{padding:.75rem 1.5rem;font-size:1.125rem}.form-group{margin-bottom:1rem}.form-label{display:block;margin-bottom:.5rem;font-size:.875rem;font-weight:500;color:var(--text-secondary)}.form-error{display:block;margin-top:.25rem;font-size:.75rem;color:var(--accent-danger)}.input,.select,.textarea{width:100%;padding:.5rem .75rem;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-body);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 1px var(--accent-primary)}.textarea{resize:vertical;min-height:80px}.badge{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.badge-credit{background-color:#10b9811a;color:var(--accent-success);border:1px solid rgba(16,185,129,.2)}.badge-debit{background-color:#f43f5e1a;color:var(--accent-danger);border:1px solid rgba(244,63,94,.2)}.badge-cash{background-color:#f59e0b1a;color:var(--accent-warning);border:1px solid rgba(245,158,11,.2)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0f172acc;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:50;padding:1rem}.modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:500px;max-height:90vh;overflow-y:auto;position:relative;z-index:51}.table{width:100%;border-collapse:separate;border-spacing:0;text-align:left}.table th{padding:1rem;font-weight:600;color:var(--text-secondary);border-bottom:1px solid var(--border-color);font-size:.875rem}.table td{padding:1rem;border-bottom:1px solid var(--border-color);vertical-align:middle}.table tbody tr{transition:background-color var(--transition-fast)}.table tbody tr:hover{background-color:var(--bg-tertiary)}.table tbody tr:last-child td{border-bottom:none}.sidebar{position:fixed;top:0;left:0;bottom:0;width:250px;background-color:var(--bg-secondary);border-right:1px solid var(--border-color);padding:1.5rem;z-index:40}.main-content{margin-left:250px;padding:2rem;min-height:100vh}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}.flex-between{display:flex;justify-content:space-between;align-items:center}.flex-center{display:flex;justify-content:center;align-items:center}.flex-gap{display:flex;gap:1rem;align-items:center}.text-success{color:var(--accent-success)}.text-danger{color:var(--accent-danger)}.text-warning{color:var(--accent-warning)}.text-muted{color:var(--text-muted)}.amount{font-family:var(--font-mono);font-weight:500;letter-spacing:-.025em}.amount-positive{color:var(--accent-success)}.amount-negative{color:var(--accent-danger)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem 1rem;color:var(--text-muted)}.empty-state svg{margin-bottom:1rem;opacity:.5}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.02)}to{transform:scale(1)}}.animate-fade-in{animation:fadeIn .3s ease-out forwards}.animate-slide-up{animation:slideUp .4s ease-out forwards}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.toast{position:fixed;bottom:1.5rem;right:1.5rem;padding:1rem 1.5rem;background-color:var(--bg-secondary);color:var(--text-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:.75rem;z-index:100;border-left:4px solid var(--accent-primary);animation:slideUp .3s ease-out forwards}.toast-success{border-left-color:var(--accent-success)}.toast-error{border-left-color:var(--accent-danger)}.skeleton{background:linear-gradient(90deg,var(--bg-secondary) 25%,var(--bg-tertiary) 50%,var(--bg-secondary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@media(max-width:768px){.sidebar{transform:translate(-100%);transition:transform var(--transition-normal)}.sidebar.open{transform:translate(0)}.main-content{margin-left:0;padding:1rem}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}
