*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#0f1117;--bg-secondary:#1a1d27;--bg-card:#1e2130;--bg-hover:#252840;--accent:#6c63ff;--accent-hover:#574fd6;--accent-soft:#6c63ff26;--success:#22c55e;--success-soft:#22c55e26;--danger:#ef4444;--danger-soft:#ef444426;--warning:#f59e0b;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--border:#2a2d3e;--radius:12px;--radius-sm:8px;--shadow:0 4px 24px #0006}body{background:var(--bg-primary);color:var(--text-primary);min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.page-header{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.page-title{color:#f1f5f9;margin-bottom:4px;font-size:24px;font-weight:700}.page-sub{color:#94a3b8;font-size:14px}.btn-primary{color:#fff;cursor:pointer;background:#6c63ff;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:600}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-ghost{color:#94a3b8;cursor:pointer;background:0 0;border:1px solid #2a2d3e;border-radius:8px;padding:10px 20px;font-size:14px}.filter-bar{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.filter-input{color:#f1f5f9;background:#1e2130;border:1px solid #2a2d3e;border-radius:8px;outline:none;padding:9px 14px;font-size:13px}.table-card{background:#1e2130;border:1px solid #2a2d3e;border-radius:12px;overflow:hidden}.records-table{border-collapse:collapse;width:100%}.records-table th{text-align:left;color:#64748b;text-transform:uppercase;letter-spacing:.5px;background:#1a1d27;border-bottom:1px solid #2a2d3e;padding:12px 16px;font-size:12px;font-weight:600}.records-table tr{border-bottom:1px solid #2a2d3e}.records-table td{color:#f1f5f9;padding:14px 16px;font-size:14px}.badge{text-transform:capitalize;border-radius:20px;padding:3px 10px;font-size:12px;font-weight:600}.badge-income{color:#22c55e;background:#22c55e26}.badge-expense{color:#ef4444;background:#ef444426}.cat-badge{color:#6c63ff;text-transform:capitalize;background:#6c63ff26;border-radius:20px;padding:3px 10px;font-size:12px}.amount-income{color:#22c55e;font-weight:600}.amount-expense{color:#ef4444;font-weight:600}.desc-cell{color:#94a3b8}.action-btns{gap:8px;display:flex}.btn-edit{color:#6c63ff;cursor:pointer;background:#6c63ff26;border:none;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:500}.btn-delete{color:#ef4444;cursor:pointer;background:#ef444426;border:none;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:500}.center-msg{text-align:center;color:#94a3b8;padding:40px}.empty-msg{text-align:center;color:#64748b;padding:60px;font-size:14px}.pagination{justify-content:center;align-items:center;gap:16px;margin-top:20px;display:flex}.page-btn{color:#f1f5f9;cursor:pointer;background:#1e2130;border:1px solid #2a2d3e;border-radius:8px;padding:8px 16px;font-size:13px}.page-btn:disabled{opacity:.4;cursor:not-allowed}.page-info{color:#94a3b8;font-size:14px}.overlay{z-index:1000;background:#000000bf;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#1e2130;border:1px solid #2a2d3e;border-radius:16px;width:100%;max-width:560px;padding:28px;box-shadow:0 4px 24px #00000080}.modal-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.modal-title{color:#f1f5f9;margin:0;font-size:16px;font-weight:600}.close-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;font-size:20px;line-height:1}.form-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.field{flex-direction:column;gap:6px;display:flex}.field-full{grid-column:span 2}.field-label{color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:500}.field-input{color:#f1f5f9;box-sizing:border-box;background:#0f1117;border:1px solid #2a2d3e;border-radius:8px;outline:none;width:100%;padding:10px 14px;font-size:14px}.field-input:focus{border-color:#6c63ff}.form-actions{gap:12px;display:flex}.error-box{color:#ef4444;background:#ef444426;border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:13px}
