:root{--bg-main:#0b0f19;--bg-card:#171f31d9;--bg-card-hover:#1e2941f2;--bg-input:#1e293b;--bg-glass:#0f172acc;--border-color:#ffffff1a;--border-highlight:#6366f166;--text-main:#f8fafc;--text-muted:#94a3b8;--text-subtle:#64748b;--primary:#6366f1;--primary-gradient:linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);--primary-glow:#6366f140;--income:#10b981;--income-bg:#10b9811f;--income-gradient:linear-gradient(135deg, #10b981 0%, #059669 100%);--expense:#ef4444;--expense-bg:#ef44441f;--expense-gradient:linear-gradient(135deg, #ef4444 0%, #dc2626 100%);--transfer:#3b82f6;--transfer-bg:#3b82f61f;--transfer-gradient:linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);--warning:#f59e0b;--warning-bg:#f59e0b1f;--shadow-sm:0 2px 8px #00000040;--shadow-md:0 12px 32px #00000073;--shadow-glow:0 0 24px #6366f140;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-xl:24px;--sidebar-width:260px;--header-height:70px;--mobile-nav-height:68px}[data-theme=light]{--bg-main:#f1f5f9;--bg-card:#fff;--bg-card-hover:#f8fafc;--bg-input:#f8fafc;--bg-glass:#ffffffe6;--border-color:#0000001a;--border-highlight:#6366f159;--text-main:#0f172a;--text-muted:#475569;--text-subtle:#94a3b8;--shadow-sm:0 2px 8px #0000000d;--shadow-md:0 8px 24px #959da526;--shadow-glow:0 0 20px #6366f126}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}body{background-color:var(--bg-main);color:var(--text-main);min-height:100vh;transition:background-color .3s,color .3s;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#94a3b840;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#94a3b873}.app-container{min-height:100vh;display:flex}.main-wrapper{min-width:0;padding-bottom:calc(var(--mobile-nav-height) + 20px);flex-direction:column;flex:1;display:flex}@media (width>=768px){.main-wrapper{margin-left:var(--sidebar-width);padding-bottom:30px}}.content-area{width:100%;max-width:1400px;margin:0 auto;padding:24px}.glass-card{background:var(--bg-card);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:24px;transition:all .25s}.glass-card:hover{border-color:var(--border-highlight);box-shadow:var(--shadow-md)}label{color:var(--text-muted);margin-bottom:6px;font-size:.85rem;font-weight:600;display:block}input[type=text],input[type=number],input[type=date],input[type=time],input[type=password],select,textarea{background-color:var(--bg-input);width:100%;color:var(--text-main);border:1px solid var(--border-color);border-radius:var(--radius-md);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;appearance:none;outline:none;padding:12px 16px;font-family:inherit;font-size:.95rem;transition:all .2s}[data-theme=light] input[type=text],[data-theme=light] input[type=number],[data-theme=light] input[type=date],[data-theme=light] input[type=time],[data-theme=light] input[type=password],[data-theme=light] select,[data-theme=light] textarea{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}input::placeholder,textarea::placeholder{color:var(--text-subtle);opacity:.8}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);background-color:var(--bg-card-hover)}select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;background-size:16px;padding-right:40px}select option{color:#f8fafc;background-color:#1e293b;padding:12px}[data-theme=light] select option{color:#0f172a;background-color:#fff}.btn{border-radius:var(--radius-md);cursor:pointer;border:none;outline:none;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-size:.92rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn-primary{background:var(--primary-gradient);color:#fff;box-shadow:var(--shadow-glow)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #6366f166}.btn-secondary{background:var(--bg-input);color:var(--text-main);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-card-hover);border-color:var(--border-highlight)}.btn-income{background:var(--income-gradient);color:#fff}.btn-expense{background:var(--expense-gradient);color:#fff}.btn-icon{border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;padding:0;display:inline-flex}.badge{border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.badge-income{background:var(--income-bg);color:var(--income)}.badge-expense{background:var(--expense-bg);color:var(--expense)}.badge-transfer{background:var(--transfer-bg);color:var(--transfer)}.badge-warning{background:var(--warning-bg);color:var(--warning)}.modal-backdrop{-webkit-backdrop-filter:blur(12px);z-index:1000;background:#000000bf;justify-content:center;align-items:center;padding:20px;animation:.25s fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-card);border:1px solid var(--border-highlight);border-radius:var(--radius-xl);width:100%;max-width:560px;max-height:90vh;box-shadow:var(--shadow-md);padding:28px;animation:.3s cubic-bezier(.16,1,.3,1) slideUp;overflow-y:auto}.grid-cols-1{grid-template-columns:repeat(1,1fr);gap:20px;display:grid}.grid-cols-2{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.grid-cols-3{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.grid-cols-4{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}@media (width<=1024px){.grid-cols-4,.grid-cols-3{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.grid-cols-4,.grid-cols-3,.grid-cols-2{grid-template-columns:repeat(1,1fr)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.animate-fade{animation:.3s fadeIn}
