:root{--bg:#fff;--bg2:#f7f8fa;--bg3:#eef0f4;--border:#00000014;--border2:#00000024;--text:#0f1117;--text2:#5a6075;--text3:#9399ad;--accent:#3b7ef8;--income:#16a34a;--expense:#e05c5c;--income-bg:#f0fdf4;--expense-bg:#fff5f5;--income-pill:#bbf7d0;--expense-pill:#ffd6d6;--shadow:0 1px 4px #0000000f;--radius:12px;--radius-sm:8px;--font:"Inter", system-ui, sans-serif;--mono:"JetBrains Mono", "Fira Code", monospace}[data-theme=dark]{--bg:#0d0f14;--bg2:#13161e;--bg3:#1a1e29;--border:#ffffff12;--border2:#ffffff21;--text:#e8eaf0;--text2:#8b90a0;--text3:#555a6e;--income-bg:#16a34a1f;--expense-bg:#e05c5c1a;--income-pill:#16a34a33;--expense-pill:#e05c5c2e;--shadow:0 1px 6px #0006}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;font-family:var(--font);background:var(--bg2);color:var(--text);transition:background .3s,color .3s;overflow-x:hidden}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:10px}button{cursor:pointer;font-family:var(--font)}input,select{font-family:var(--font)}@keyframes pageIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.page-enter{animation:.28s cubic-bezier(.22,1,.36,1) both pageIn}@keyframes cardIn{0%{opacity:0;transform:translateY(18px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.card-enter{animation:.32s cubic-bezier(.22,1,.36,1) both cardIn;animation-delay:calc(var(--i,0) * 60ms)}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.fade-enter{animation:.22s both fadeIn;animation-delay:calc(var(--i,0) * 30ms)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%)translateY(-12px)scale(.95)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}@keyframes toastOut{0%{opacity:1;transform:translate(-50%)translateY(0)scale(1)}to{opacity:0;transform:translate(-50%)translateY(-12px)scale(.95)}}.toast-in{animation:.22s cubic-bezier(.22,1,.36,1) both toastIn}.toast-out{animation:.18s forwards toastOut}@keyframes navPop{0%{transform:scale(1)}50%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg, var(--bg3) 25%, var(--bg2) 50%, var(--bg3) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.4s infinite shimmer}button,a,select,input{transition:background .15s,border-color .15s,color .15s,box-shadow .15s,opacity .15s}@keyframes sidebarIn{0%{transform:translate(-100%)}to{transform:translate(0)}}.sidebar-enter{animation:.25s cubic-bezier(.22,1,.36,1) both sidebarIn}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes modalIn{0%{opacity:0;transform:scale(.94)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}.modal-backdrop{animation:.2s both backdropIn}.modal-enter{animation:.25s cubic-bezier(.22,1,.36,1) both modalIn}@keyframes numFlash{0%{opacity:.4;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.num-flash{animation:.3s both numFlash}
