@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap);:root{--bg-primary:#fff;--bg-secondary:#f8f9fb;--bg-tertiary:#f0f2f5;--bg-hover:#eef0f4;--text-primary:#0f1117;--text-secondary:#5a6072;--text-tertiary:#9399aa;--border:#e4e7ef;--border-strong:#cdd1de;--income:#059669;--income-bg:#ecfdf5;--income-border:#a7f3d0;--expense:#dc2626;--expense-bg:#fef2f2;--expense-border:#fca5a5;--savings:#2563eb;--savings-bg:#eff6ff;--savings-border:#bfdbfe;--warning:#d97706;--warning-bg:#fffbeb;--accent:#6366f1;--accent-bg:#eef2ff;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--shadow-sm:0 1px 3px #0000000f,0 1px 2px #0000000a;--shadow-md:0 4px 12px #00000014,0 2px 4px #0000000a;--shadow-lg:0 8px 24px #0000001a,0 4px 8px #0000000f;--sidebar-width:220px;--topbar-height:56px;--transition:180ms ease;--font-body:"Inter",system-ui,sans-serif;--font-mono:"JetBrains Mono","Courier New",monospace}[data-theme=dark]{--bg-primary:#0f1117;--bg-secondary:#171b24;--bg-tertiary:#1e2330;--bg-hover:#252b3a;--text-primary:#f1f4f9;--text-secondary:#8b93a7;--text-tertiary:#5a6278;--border:#252b3a;--border-strong:#323a4f;--income:#10b981;--income-bg:#052e1c;--income-border:#064e31;--expense:#ef4444;--expense-bg:#2a0d0d;--expense-border:#5a1515;--savings:#3b82f6;--savings-bg:#0d1e3d;--savings-border:#1a3561;--warning:#f59e0b;--warning-bg:#1f1500;--accent:#818cf8;--accent-bg:#1a1b3a;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 24px #00000080}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:14px}body{-webkit-font-smoothing:antialiased;background:#f0f2f5;background:var(--bg-tertiary);color:#0f1117;color:var(--text-primary);font-family:Inter,system-ui,sans-serif;font-family:var(--font-body);line-height:1.6;transition:background .18s ease,color .18s ease;transition:background var(--transition),color var(--transition)}.app-layout{display:flex;flex-direction:column;min-height:100vh}.topbar{background:#fff;background:var(--bg-primary);border-bottom:1px solid #e4e7ef;border-bottom:1px solid var(--border);box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a;box-shadow:var(--shadow-sm);gap:16px;height:56px;height:var(--topbar-height);padding:0 20px;position:sticky;top:0;z-index:100}.topbar,.topbar-brand{align-items:center;display:flex}.topbar-brand{color:#0f1117;color:var(--text-primary);font-size:15px;font-weight:600;gap:8px;white-space:nowrap}.topbar-brand .brand-icon{align-items:center;background:linear-gradient(135deg,#6366f1,#8b5cf6);background:linear-gradient(135deg,var(--accent) 0,#8b5cf6 100%);border-radius:6px;border-radius:var(--radius-sm);display:flex;font-size:14px;height:28px;justify-content:center;width:28px}.nav-tabs{display:flex;flex:1 1;gap:2px;overflow-x:auto;scrollbar-width:none}.nav-tabs::-webkit-scrollbar{display:none}.nav-tab{align-items:center;background:#0000;border:none;border-radius:6px;border-radius:var(--radius-sm);color:#5a6072;color:var(--text-secondary);cursor:pointer;display:flex;font-family:Inter,system-ui,sans-serif;font-family:var(--font-body);font-size:13px;font-weight:400;gap:6px;padding:6px 14px;transition:all .18s ease;transition:all var(--transition);white-space:nowrap}.nav-tab.active,.nav-tab:hover{background:#f0f2f5;background:var(--bg-tertiary);color:#0f1117;color:var(--text-primary)}.nav-tab.active{font-weight:500}.nav-tab svg{flex-shrink:0;height:14px;width:14px}.topbar-actions{align-items:center;display:flex;gap:8px;margin-left:auto}.main-content{flex:1 1;margin:0 auto;max-width:1100px;padding:20px;width:100%}.card{background:#fff;background:var(--bg-primary);border:1px solid #e4e7ef;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius-lg);box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a;box-shadow:var(--shadow-sm);padding:20px}.card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.card-title{color:#0f1117;color:var(--text-primary);font-size:14px;font-weight:600}.metrics-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(4,1fr);margin-bottom:20px}.metric-card{background:#fff;background:var(--bg-primary);border:1px solid #e4e7ef;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius-lg);box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a;box-shadow:var(--shadow-sm);padding:16px}.metric-label{color:#9399aa;color:var(--text-tertiary);font-size:11px;font-weight:500;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.metric-value{font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:22px;font-weight:500;line-height:1.2;margin-bottom:4px}.metric-sub{color:#9399aa;color:var(--text-tertiary);font-size:11px}.metric-income .metric-value{color:#059669;color:var(--income)}.metric-expense .metric-value{color:#dc2626;color:var(--expense)}.metric-savings .metric-value{color:#2563eb;color:var(--savings)}.metric-net .metric-value{color:#0f1117;color:var(--text-primary)}.badge{align-items:center;border-radius:100px;display:inline-flex;font-size:11px;font-weight:500;gap:3px;padding:2px 8px}.badge-income{background:#ecfdf5;background:var(--income-bg);border:1px solid #a7f3d0;border:1px solid var(--income-border);color:#059669;color:var(--income)}.badge-expense{background:#fef2f2;background:var(--expense-bg);border:1px solid #fca5a5;border:1px solid var(--expense-border);color:#dc2626;color:var(--expense)}.badge-interest,.badge-savings{background:#eff6ff;background:var(--savings-bg);border:1px solid #bfdbfe;border:1px solid var(--savings-border);color:#2563eb;color:var(--savings)}.badge-adjustment{background:#f0f2f5;background:var(--bg-tertiary);border:1px solid #e4e7ef;border:1px solid var(--border);color:#5a6072;color:var(--text-secondary)}.badge-correction{background:#fffbeb;background:var(--warning-bg);border:1px solid #d97706;border:1px solid var(--warning);color:#d97706;color:var(--warning)}.badge-withdrawal{background:#fef2f2;background:var(--expense-bg);border:1px solid #fca5a5;border:1px solid var(--expense-border);color:#dc2626;color:var(--expense)}.btn{align-items:center;background:#fff;background:var(--bg-primary);border:1px solid #e4e7ef;border:1px solid var(--border);border-radius:6px;border-radius:var(--radius-sm);color:#0f1117;color:var(--text-primary);cursor:pointer;display:inline-flex;font-family:Inter,system-ui,sans-serif;font-family:var(--font-body);font-size:13px;font-weight:500;gap:6px;justify-content:center;line-height:1;padding:8px 14px;transition:all .18s ease;transition:all var(--transition);white-space:nowrap}.btn:hover{background:#eef0f4;background:var(--bg-hover);border-color:#cdd1de;border-color:var(--border-strong)}.btn:active{transform:scale(.98)}.btn svg{height:14px;width:14px}.btn-primary{background:#6366f1;background:var(--accent);border-color:#6366f1;border-color:var(--accent);color:#fff}.btn-primary:hover{background:#4f52d8;border-color:#4f52d8}.btn-sm{font-size:12px;padding:5px 10px}.btn-xs{font-size:11px;padding:3px 8px}.btn-ghost{background:#0000;border-color:#0000;color:#5a6072;color:var(--text-secondary)}.btn-ghost:hover{background:#eef0f4;background:var(--bg-hover);border-color:#0000;color:#0f1117;color:var(--text-primary)}.btn-danger{border-color:#fca5a5;border-color:var(--expense-border);color:#dc2626;color:var(--expense)}.btn-danger:hover{background:#fef2f2;background:var(--expense-bg)}.btn-icon{border-radius:6px;border-radius:var(--radius-sm);height:30px;padding:0;width:30px}.form-group{margin-bottom:14px}.form-group:last-child{margin-bottom:0}label{color:#5a6072;color:var(--text-secondary);display:block;font-size:12px;font-weight:500;margin-bottom:5px}input,select,textarea{background:#fff;background:var(--bg-primary);border:1px solid #e4e7ef;border:1px solid var(--border);border-radius:6px;border-radius:var(--radius-sm);color:#0f1117;color:var(--text-primary);font-family:Inter,system-ui,sans-serif;font-family:var(--font-body);font-size:13px;line-height:1.5;outline:none;padding:8px 12px;transition:border-color .18s ease,box-shadow .18s ease;transition:border-color var(--transition),box-shadow var(--transition);width:100%}input:focus,select:focus,textarea:focus{border-color:#6366f1;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,#6366f1 15%,#0000);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,#0000)}input::placeholder,textarea::placeholder{color:#9399aa;color:var(--text-tertiary)}input[type=number]{font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono)}.input-error{border-color:#dc2626!important;border-color:var(--expense)!important}.error-msg{color:#dc2626;color:var(--expense);font-size:11px;margin-top:4px}.table-wrapper{overflow-x:auto}table{border-collapse:collapse;font-size:13px;width:100%}th{color:#9399aa;color:var(--text-tertiary);font-size:11px;font-weight:600;letter-spacing:.4px;padding:8px 10px;text-align:left;text-transform:uppercase}td,th{border-bottom:1px solid #e4e7ef;border-bottom:1px solid var(--border)}td{padding:10px;vertical-align:middle}tr:last-child td{border-bottom:none}tr:hover td{background:#f8f9fb;background:var(--bg-secondary)}.amount-cell{font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:13px;text-align:right}.progress-wrap{background:#f0f2f5;background:var(--bg-tertiary);border-radius:100px;height:6px;overflow:hidden}.progress-fill{border-radius:100px;height:100%;transition:width .4s ease}.grid-2{grid-gap:16px;grid-template-columns:1fr 1fr}.grid-2,.grid-3{display:grid;gap:16px}.grid-3{grid-gap:16px;grid-template-columns:1fr 1fr 1fr}.grid-auto{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.flex{align-items:center;display:flex;gap:8px}.flex-1{flex:1 1}.flex-end{justify-content:flex-end}.flex-between{justify-content:space-between}.flex-wrap{flex-wrap:wrap}.flex-col{align-items:flex-start;flex-direction:column}.period-bar{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:16px}.period-btn{background:#0000;border:1px solid #e4e7ef;border:1px solid var(--border);border-radius:100px;color:#5a6072;color:var(--text-secondary);cursor:pointer;font-family:Inter,system-ui,sans-serif;font-family:var(--font-body);font-size:12px;font-weight:500;padding:5px 12px;transition:all .18s ease;transition:all var(--transition)}.period-btn:hover{background:#eef0f4;background:var(--bg-hover);color:#0f1117;color:var(--text-primary)}.period-btn.active{background:#0f1117;background:var(--text-primary);border-color:#0f1117;border-color:var(--text-primary);color:#fff;color:var(--bg-primary)}.ss-option{align-items:center;border-left:2px solid #0000;cursor:pointer;display:flex;font-size:13px;gap:10px;padding:8px 14px;transition:background .18s ease;transition:background var(--transition)}.ss-option.ss-selected,.ss-option:hover{background:#f8f9fb;background:var(--bg-secondary)}.ss-option.ss-selected{border-left-color:#2563eb;border-left-color:var(--savings);font-weight:600}.ss-create{align-items:center;color:#2563eb;color:var(--savings);cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:6px;padding:8px 14px;transition:background .18s ease;transition:background var(--transition)}.ss-create:hover{background:#f8f9fb;background:var(--bg-secondary)}.section-title{color:#9399aa;color:var(--text-tertiary);font-size:11px;font-weight:600;letter-spacing:.6px;margin-bottom:10px;margin-top:20px;text-transform:uppercase}.section-title:first-child{margin-top:0}.empty-state{color:#9399aa;color:var(--text-tertiary);padding:48px 20px;text-align:center}.empty-state-icon{font-size:32px;margin-bottom:12px}.empty-state-title{color:#5a6072;color:var(--text-secondary);font-size:14px;font-weight:500;margin-bottom:6px}.empty-state-sub{font-size:12px}.toast-container{bottom:24px;display:flex;flex-direction:column;gap:8px;position:fixed;right:24px;z-index:999}.toast{align-items:center;animation:toastIn .2s ease;background:#fff;background:var(--bg-primary);border:1px solid #e4e7ef;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius-md);box-shadow:0 8px 24px #0000001a,0 4px 8px #0000000f;box-shadow:var(--shadow-lg);display:flex;font-size:13px;gap:10px;max-width:340px;min-width:220px;padding:10px 16px}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.modal-backdrop{align-items:center;animation:fadeIn .15s ease;background:#0006;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:200}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{animation:modalIn .2s ease;background:#fff;background:var(--bg-primary);border:1px solid #e4e7ef;border:1px solid var(--border);border-radius:20px;border-radius:var(--radius-xl);box-shadow:0 8px 24px #0000001a,0 4px 8px #0000000f;box-shadow:var(--shadow-lg);max-height:calc(100vh - 40px);max-width:460px;overflow-y:auto;padding:24px;width:100%}.modal.modal-wide{max-width:720px}@keyframes modalIn{0%{opacity:0;transform:scale(.96) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-title{font-size:16px;font-weight:600;margin-bottom:20px}.modal-footer{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}.kbd{align-items:center;background:#f0f2f5;background:var(--bg-tertiary);border:1px solid #e4e7ef;border:1px solid var(--border);border-radius:4px;color:#5a6072;color:var(--text-secondary);display:inline-flex;font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:10px;padding:1px 6px}.divider{background:#e4e7ef;background:var(--border);height:1px;margin:16px 0}.toggle-wrap{align-items:center;cursor:pointer;display:flex;gap:10px}.toggle{background:#cdd1de;background:var(--border-strong);border:none;border-radius:100px;cursor:pointer;flex-shrink:0;height:20px;padding:0;position:relative;transition:background .18s ease;transition:background var(--transition);width:36px}.toggle.on{background:#6366f1;background:var(--accent)}.toggle-icon{align-items:center;background:#fff;border-radius:50%;color:#555;display:flex;height:14px;justify-content:center;left:3px;pointer-events:none;position:absolute;top:3px;transition:transform .18s ease;transition:transform var(--transition);width:14px}.toggle.on .toggle-icon{color:#6366f1;color:var(--accent);transform:translateX(16px)}.file-save-chip{align-items:center;border:1px solid #0000;border-radius:100px;cursor:pointer;display:inline-flex;font-size:11px;font-weight:500;gap:5px;max-width:200px;padding:3px 10px 3px 8px;transition:opacity .15s,background .15s;white-space:nowrap}.file-save-chip-name{max-width:110px;overflow:hidden;text-overflow:ellipsis}.file-save-chip-dot{border-radius:50%;flex-shrink:0;height:6px;width:6px}.file-save-chip.saved{background:color-mix(in srgb,#059669 12%,#0000);background:color-mix(in srgb,var(--income) 12%,#0000);border-color:color-mix(in srgb,#059669 25%,#0000);border-color:color-mix(in srgb,var(--income) 25%,#0000);color:#059669;color:var(--income)}.file-save-chip.saved .file-save-chip-dot{background:#059669;background:var(--income)}.file-save-chip.unsaved{background:color-mix(in srgb,var(--color-warning) 12%,#0000);border-color:color-mix(in srgb,var(--color-warning) 30%,#0000);color:var(--color-warning)}.file-save-chip.unsaved .file-save-chip-dot{background:var(--color-warning)}.file-save-chip:hover{opacity:.8}.external-change-bar{align-items:center;background:color-mix(in srgb,var(--color-warning) 15%,#f8f9fb);background:color-mix(in srgb,var(--color-warning) 15%,var(--bg-secondary));border-bottom:1px solid color-mix(in srgb,var(--color-warning) 40%,#0000);color:#0f1117;color:var(--text-primary);display:flex;font-size:13px;gap:10px;padding:8px 16px}.external-change-bar>span{flex:1 1}.mono{font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono)}.income-text{color:#059669;color:var(--income)}.expense-text{color:#dc2626;color:var(--expense)}.savings-text{color:#2563eb;color:var(--savings)}.muted{color:#9399aa;color:var(--text-tertiary)}.secondary{color:#5a6072;color:var(--text-secondary)}@media (max-width:900px){.grid-3,.metrics-grid{grid-template-columns:1fr 1fr}}@media (max-width:640px){.main-content{padding:12px}.metrics-grid{gap:8px;grid-template-columns:1fr 1fr}.grid-2,.grid-3{grid-template-columns:1fr}.nav-tab span{display:none}.topbar{gap:8px;padding:0 12px}}::-webkit-scrollbar{height:6px;width:6px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#cdd1de;background:var(--border-strong);border-radius:3px}
/*# sourceMappingURL=main.30ed427c.css.map*/