@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap";
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.break-all{word-break:break-all}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.line-through{text-decoration-line:line-through}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}:root{--bg-primary:#080810;--bg-secondary:#0e0e1a;--bg-card:#12121f;--bg-card-hover:#1a1a2e;--border:#ffffff0f;--border-bright:#ffffff1f;--text-primary:#f0f0ff;--text-secondary:#88a;--text-muted:#557;--violet:#7c3aed;--violet-light:#8b5cf6;--violet-glow:#7c3aed4d;--emerald:#10b981;--emerald-glow:#10b98140;--rose:#f43f5e;--rose-glow:#f43f5e40;--amber:#f59e0b;--amber-glow:#f59e0b40;--blue:#3b82f6;--cyan:#06b6d4}:root[data-theme=light]{--bg-primary:#faf7f4;--bg-secondary:#f2ede8;--bg-card:#fff;--bg-card-hover:#fdf9f6;--border:#7850281a;--border-bright:#78502833;--text-primary:#1a1128;--text-secondary:#4a3f5c;--text-muted:#8e82a2;--violet:#6d28d9;--violet-light:#7c3aed;--violet-glow:#6d28d92e;--emerald:#047857;--emerald-glow:#04785726;--rose:#be123c;--rose-glow:#be123c26;--amber:#b45309;--amber-glow:#b4530926;--blue:#1d4ed8;--cyan:#0e7490}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:#7c3aed66;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--violet)}.glass-card{background:var(--bg-card);border:1px solid var(--border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:16px;transition:border-color .2s,transform .2s,box-shadow .2s}.glass-card:hover{border-color:var(--border-bright)}.gradient-text{-webkit-text-fill-color:transparent;background:linear-gradient(135deg,#8b5cf6 0%,#06b6d4 100%);-webkit-background-clip:text;background-clip:text}.glow-violet{box-shadow:0 0 30px var(--violet-glow)}.glow-emerald{box-shadow:0 0 30px var(--emerald-glow)}.glow-rose{box-shadow:0 0 30px var(--rose-glow)}.gradient-border{border-radius:16px;position:relative}.gradient-border:before{content:"";background:linear-gradient(135deg, var(--violet), var(--cyan), var(--emerald));z-index:-1;opacity:0;border-radius:17px;transition:opacity .3s;position:absolute;inset:-1px}.gradient-border:hover:before{opacity:.6}.recharts-tooltip-wrapper .custom-tooltip{border-radius:12px;padding:10px 14px;font-family:Inter,sans-serif;background:var(--bg-card)!important;border:1px solid var(--border-bright)!important}.input-dark{border:1px solid var(--border);color:var(--text-primary);background:#ffffff0a;border-radius:10px;outline:none;width:100%;padding:10px 14px;font-size:14px;transition:border-color .2s,box-shadow .2s}.input-dark:focus{border-color:var(--violet-light);box-shadow:0 0 0 3px var(--violet-glow)}.input-dark::placeholder{color:var(--text-muted)}.input-dark option,select option{background-color:var(--bg-card);color:var(--text-primary)}.category-badge{white-space:nowrap;border-radius:20px;align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:500;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--violet) 0%, #5b21b6 100%);color:#fff;cursor:pointer;border:none;border-radius:10px;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;transition:opacity .2s,transform .2s,box-shadow .2s;display:inline-flex}.btn-primary:hover{opacity:.9;box-shadow:0 8px 25px var(--violet-glow);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:10px;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.btn-ghost:hover{border-color:var(--border-bright);color:var(--text-primary);background:#ffffff0d}.data-table{border-collapse:collapse;width:100%}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border);padding:12px 16px;font-size:12px;font-weight:600}.data-table td{border-bottom:1px solid #ffffff08;padding:14px 16px;font-size:14px;transition:background .15s}.data-table tr:hover td{background:#ffffff05}.nav-link{color:var(--text-secondary);cursor:pointer;border-radius:12px;align-items:center;gap:12px;padding:10px 14px;font-size:14px;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.nav-link:hover{color:var(--text-primary);background:#ffffff0d}.nav-link.active{color:#a78bfa;background:#7c3aed26;border:1px solid #7c3aed33}.stat-card{background:var(--bg-card);border:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:20px;padding:24px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 4px 20px -2px #0000001a}.stat-card:hover{border-color:var(--border-bright);transform:translateY(-4px);box-shadow:0 12px 30px -5px #00000026}.stat-card:after{content:"";filter:blur(40px);opacity:.35;pointer-events:none;border-radius:50%;width:120px;height:120px;position:absolute;top:-20px;right:-20px}.stat-card.income:after{background:var(--emerald)}.stat-card.expense:after{background:var(--rose)}.stat-card.savings:after{background:var(--violet)}.stat-card.neutral:after{background:var(--cyan)}.stat-card:hover{border-color:var(--border-bright);transform:translateY(-2px)}.progress-bar{background:#ffffff0f;border-radius:3px;height:6px;overflow:hidden}.progress-fill{border-radius:3px;height:100%;transition:width 1s ease-out}.heatmap-cell{cursor:pointer;border-radius:3px;width:14px;height:14px;transition:transform .15s}.heatmap-cell:hover{transform:scale(1.3)}.fab{background:linear-gradient(135deg, var(--violet) 0%, var(--cyan) 100%);cursor:pointer;width:56px;height:56px;box-shadow:0 8px 30px var(--violet-glow);z-index:100;border:none;border-radius:50%;justify-content:center;align-items:center;transition:transform .2s,box-shadow .2s;display:flex;position:fixed;bottom:28px;right:28px}.fab:hover{box-shadow:0 12px 40px var(--violet-glow);transform:scale(1.1)rotate(45deg)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes ring-fill{0%{stroke-dashoffset:440px}}.health-ring{animation:1.5s cubic-bezier(.34,1.56,.64,1) forwards ring-fill}.page-enter{animation:.3s ease-out pageIn}@keyframes pageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.notification-dot{background:var(--rose);border-radius:50%;width:8px;height:8px;animation:2s infinite pulse;position:absolute;top:-2px;right:-2px}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.4)}}.insight-card{background:linear-gradient(135deg,#7c3aed1a 0%,#06b6d40d 100%);border:1px solid #7c3aed33;border-radius:12px;padding:14px 16px;font-size:14px;line-height:1.6}.chat-bubble{border-radius:16px;max-width:75%;padding:12px 16px;font-size:14px;line-height:1.6}.chat-bubble.user{background:linear-gradient(135deg, var(--violet) 0%, #5b21b6 100%);color:#fff;border-radius:16px 16px 4px;margin-left:auto}.chat-bubble.ai{background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);border-radius:16px 16px 16px 4px}.mobile-overlay,.mobile-menu-btn{display:none}@media (max-width:1024px){.grid-cols-4-responsive,.grid-cols-3-responsive{grid-template-columns:repeat(2,1fr)!important}.grid-cols-2-responsive{grid-template-columns:1fr!important}.flex-col-tablet{flex-direction:column!important;align-items:stretch!important}}@media (max-width:768px){.mobile-overlay{display:block}.mobile-menu-btn{display:flex!important}.sidebar{z-index:45;opacity:0;pointer-events:none;border-bottom:1px solid var(--border);max-height:calc(100vh - 60px);transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .3s;left:0;overflow-y:auto;transform:translateY(-100%);border-right:none!important;width:100%!important;height:auto!important;min-height:0!important;position:fixed!important;top:60px!important}.sidebar.open{opacity:1;pointer-events:auto;transform:translateY(0)}.grid-cols-4-responsive,.grid-cols-3-responsive,.grid-cols-2-responsive{grid-template-columns:1fr!important}.flex-col-mobile{flex-direction:column!important;align-items:stretch!important}.overflow-x-auto-mobile{-webkit-overflow-scrolling:touch;padding-bottom:8px;overflow-x:auto}.fab{bottom:20px;right:20px}.pagination-bar{flex-wrap:wrap;gap:6px!important;padding:12px!important;left:0!important}.hidden-mobile{display:none!important}main{padding:16px!important}}.upload-zone{border:2px dashed var(--border-bright);text-align:center;cursor:pointer;border-radius:16px;padding:40px;transition:all .2s}.upload-zone:hover,.upload-zone.drag-over{border-color:var(--violet-light);background:#7c3aed0d}.score-excellent{color:#22c55e}.score-good{color:#84cc16}.score-average{color:#f59e0b}.score-poor{color:#ef4444}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}:root[data-theme=light] .glass-card{background:#fff;border:1px solid #7850281a;box-shadow:0 2px 16px #1a11280f,0 1px 4px #1a11280a}:root[data-theme=light] .glass-card:hover{border-color:#6d28d940;box-shadow:0 6px 24px #6d28d91a,0 2px 8px #1a11280f}:root[data-theme=light] .input-dark{color:#1a1128;background:#faf7f4;border:1px solid #78502826}:root[data-theme=light] .input-dark:focus{background:#fff;border-color:#7c3aed;box-shadow:0 0 0 3px #6d28d91f}:root[data-theme=light] .input-dark::placeholder{color:#8e82a2}:root[data-theme=light] .input-dark option,:root[data-theme=light] select option{color:#1a1128;background:#fff}:root[data-theme=light] .btn-ghost{color:#4a3f5c;background:#6d28d90a;border:1px solid #7850281f}:root[data-theme=light] .btn-ghost:hover{color:#6d28d9;background:#6d28d914;border-color:#6d28d94d}:root[data-theme=light] .nav-link{color:#4a3f5c}:root[data-theme=light] .nav-link:hover{color:#1a1128;background:#6d28d912}:root[data-theme=light] .nav-link.active{color:#6d28d9;background:#6d28d91f;border:1px solid #6d28d933}:root[data-theme=light] .progress-bar{background:#78502814}:root[data-theme=light] .stat-card{background:#fff;border:1px solid #7850281a;box-shadow:0 4px 20px #1a112812}:root[data-theme=light] .stat-card:hover{border-color:#6d28d933;box-shadow:0 8px 30px #6d28d91f}:root[data-theme=light] .data-table td{border-bottom-color:#7850280f}:root[data-theme=light] .data-table tr:hover td{background:#6d28d908}:root[data-theme=light] .data-table th{border-bottom-color:#7850281a}:root[data-theme=light] .insight-card{background:linear-gradient(135deg,#6d28d90f,#0e74900a);border:1px solid #6d28d926}:root[data-theme=light] .chat-bubble.ai{background:#f2ede8;border:1px solid #7850281a}:root[data-theme=light] .upload-zone{background:#faf7f4cc;border-color:#78502833}:root[data-theme=light] .upload-zone:hover,:root[data-theme=light] .upload-zone.drag-over{background:#6d28d90a;border-color:#7c3aed}:root[data-theme=light] ::-webkit-scrollbar-track{background:#f2ede8}:root[data-theme=light] ::-webkit-scrollbar-thumb{background:#6d28d94d}:root[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#6d28d9}:root[data-theme=light] main [style*="rgba(255,255,255,0.02)"]{background:#fff!important;border-color:#7850281a!important;box-shadow:0 2px 12px #1a11280f!important}:root[data-theme=light] main [style*="rgba(124,58,237,0.15)"],:root[data-theme=light] main [style*="rgba(124,58,237,0.2)"],:root[data-theme=light] main [style*="rgba(124,58,237,0.25)"]{background:linear-gradient(135deg,#6d28d914 0%,#0e74900d 100%)!important;border-color:#6d28d92e!important}:root[data-theme=light] table tr{border-bottom-color:#7850280f!important}:root[data-theme=light] table tr:hover{background:#6d28d908!important}:root[data-theme=light] main{color:var(--text-primary)}:root[data-theme=light] main [style*="rgba(255,255,255,0.04)"]{background:#f2ede8!important;border-color:#78502826!important}:root[data-theme=light] main [style*="rgba(255,255,255,0.06)"]{background:#ede6df!important;border-color:#78502826!important}:root[data-theme=light] main [style*="rgba(34,197,94,0.15)"]{background:linear-gradient(135deg,#04785714,#04785708)!important;border-color:#04785733!important}:root[data-theme=light] main [style*="rgba(239,68,68,0.15)"]{background:linear-gradient(135deg,#be123c14,#be123c08)!important;border-color:#be123c33!important}:root[data-theme=light] main [style*="rgba(124,58,237,0.15)"]{background:linear-gradient(135deg,#6d28d914,#6d28d908)!important;border-color:#6d28d933!important}:root[data-theme=light] main [style*="rgba(6,182,212,0.15)"]{background:linear-gradient(135deg,#0e749014,#0e749008)!important;border-color:#0e749033!important}:root[data-theme=light] main [style*="rgba(34,197,94,0.15)"] *,:root[data-theme=light] main [style*="rgba(239,68,68,0.15)"] *,:root[data-theme=light] main [style*="rgba(124,58,237,0.15)"] *,:root[data-theme=light] main [style*="rgba(6,182,212,0.15)"] *{color:var(--text-primary)!important}:root[data-theme=light] main [style*="rgba(255,255,255,0.02)"][style*="border-radius: 16px"],:root[data-theme=light] main [style*="rgba(255,255,255,0.02)"][style*="borderRadius: '16px'"]{background:#fdfaf7!important}:root[data-theme=light] main [style*="rgba(124,58,237,0.12)"]{background:linear-gradient(160deg,#6d28d90f,#0e749008)!important;border-color:#6d28d926!important}.hero-header{flex-direction:row}.hero-controls{flex-wrap:nowrap}.safe-to-spend-widget{flex-flow:row;align-items:center}.safe-to-spend-right{text-align:right}@media (max-width:640px){.hero-header{flex-direction:column!important;align-items:flex-start!important;gap:16px!important}.hero-controls{width:100%;margin-top:8px;flex-wrap:wrap!important;justify-content:flex-start!important;gap:8px!important}.safe-to-spend-widget{flex-direction:column!important;align-items:flex-start!important;gap:12px!important}.safe-to-spend-right{text-align:left!important;min-width:auto!important}.greeting-emoji{white-space:nowrap;display:inline-block}}.mobile-bottom-bar{display:none}@media (max-width:768px){.mobile-bottom-bar{background:var(--bg-secondary);border-top:1px solid var(--border);z-index:60;-webkit-backdrop-filter:blur(20px);align-items:stretch;gap:0;height:64px;padding:0 8px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 24px #0000004d}.bottom-tab-item{color:var(--text-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:6px 4px;font-family:inherit;text-decoration:none;transition:color .2s;display:flex}.bottom-tab-item.active{color:var(--violet-light)}.bottom-tab-icon-wrap{border-radius:12px;justify-content:center;align-items:center;width:36px;height:36px;display:flex;position:relative}.bottom-tab-pill{z-index:0;background:#7c3aed2e;border-radius:12px;position:absolute;inset:0}.bottom-tab-item svg{z-index:1;position:relative}.bottom-tab-label{letter-spacing:.01em;font-size:10px;font-weight:600}.main-content{padding-bottom:90px!important}.fab{bottom:80px!important;right:20px!important}.mobile-overlay{z-index:44!important}}:root[data-theme=light] .mobile-bottom-bar{background:#f2ede8f2;border-top-color:#7850281f;box-shadow:0 -4px 24px #1a112814}:root[data-theme=light] .bottom-tab-item{color:var(--text-muted)}:root[data-theme=light] .bottom-tab-item.active{color:var(--violet)}:root[data-theme=light] .bottom-tab-pill{background:#6d28d91f}.skeleton{background:linear-gradient(90deg,#ffffff08 0%,#ffffff12 40%,#ffffff08 80%) 0 0/200% 100%;border-radius:12px;animation:1.6s ease-in-out infinite shimmer}:root[data-theme=light] .skeleton{background:linear-gradient(90deg,#0000000a 0%,#00000014 40%,#0000000a 80%) 0 0/200% 100%;animation:1.6s ease-in-out infinite shimmer}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
