@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--bg-color:#0f172a;--panel-bg:#1e293b;--text-main:#f8fafc;--text-muted:#94a3b8;--primary:#3b82f6;--primary-hover:#2563eb;--success:#10b981;--danger:#ef4444;--warning:#f59e0b;--border-color:#334155;--radius-md:12px;--radius-lg:16px;--radius-xl:24px}*{box-sizing:border-box;margin:0;padding:0;font-family:Inter,sans-serif}body{background-color:var(--bg-color);color:var(--text-main);line-height:1.5;overflow-x:hidden}a{color:var(--primary);text-decoration:none;transition:color .2s}a:hover{text-decoration:underline}.app-container{width:100vw;height:100vh;display:flex}.sidebar{background-color:var(--panel-bg);border-right:1px solid var(--border-color);flex-direction:column;width:260px;padding:20px 0;display:flex}.sidebar .brand{color:var(--text-main);align-items:center;gap:10px;margin-bottom:2rem;padding:0 20px;font-size:1.5rem;font-weight:700;display:flex}.sidebar nav{flex-direction:column;gap:5px;display:flex}.sidebar a{color:var(--text-muted);align-items:center;gap:12px;padding:12px 20px;font-weight:500;transition:all .2s;display:flex}.sidebar a:hover,.sidebar a.active{color:var(--primary);border-right:4px solid var(--primary);background-color:#3b82f61a;text-decoration:none}.main-content{flex-direction:column;flex:1;display:flex;overflow-y:auto}.topbar{border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10;background-color:#0f172acc;justify-content:flex-end;align-items:center;height:70px;padding:0 40px;display:flex;position:sticky;top:0}.content-area{flex:1;padding:40px}.card{background-color:var(--panel-bg);border-radius:var(--radius-lg);border:1px solid var(--border-color);padding:24px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-bottom:30px;display:grid}.stat-card{align-items:center;gap:16px;display:flex}.stat-icon{border-radius:var(--radius-md);justify-content:center;align-items:center;width:50px;height:50px;font-size:1.5rem;display:flex}.stat-info h3{color:var(--text-muted);margin-bottom:4px;font-size:.9rem;font-weight:500}.stat-info .val{font-size:1.5rem;font-weight:700}.stat-icon.income{color:var(--success);background-color:#10b9811a}.stat-icon.expense{color:var(--danger);background-color:#ef44441a}.stat-icon.savings{color:var(--primary);background-color:#3b82f61a}.form-group{margin-bottom:20px}.form-group label{color:var(--text-muted);margin-bottom:8px;font-size:.9rem;display:block}.input,select{background-color:var(--bg-color);border:1px solid var(--border-color);width:100%;color:var(--text-main);border-radius:var(--radius-md);padding:12px 16px;font-size:1rem;transition:all .2s}.input:focus,select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #3b82f633}.btn{border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-size:.95rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover{background-color:var(--primary-hover);transform:translateY(-1px)}.btn-danger{background-color:var(--danger);color:#fff}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border-color);padding:16px}th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.9rem;font-weight:500}.badge{border-radius:99px;padding:4px 10px;font-size:.75rem;font-weight:600}.badge.income{color:var(--success);background-color:#10b9811a}.badge.expense{color:var(--danger);background-color:#ef44441a}.loader{border:3px solid #ffffff1a;border-top-color:var(--primary);border-radius:50%;width:40px;height:40px;margin:40px auto;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-message{color:var(--danger);border-radius:var(--radius-md);background-color:#ef44441a;border:1px solid #ef444433;align-items:center;gap:10px;margin-bottom:20px;padding:16px;display:flex}
