:root {
    --brand: #1f6f54;
    --brand-dark: #155741;
    --income: #198754;
    --expense: #dc3545;
    --ink: #1f2933;
    --bg: #f4f6f8;
}

body {
    background: var(--bg);
    color: var(--ink);
    font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
}

.app-navbar {
    background: linear-gradient(90deg, var(--brand-dark), var(--brand));
    box-shadow: 0 2px 8px rgba(0,0,0,.12);
}

.app-navbar .nav-link { color: rgba(255,255,255,.82); }
.app-navbar .nav-link:hover,
.app-navbar .nav-link.active { color: #fff; font-weight: 600; }

.card {
    border: none;
    border-radius: 14px;
    box-shadow: 0 1px 4px rgba(16,24,40,.06);
}

.stat-card { border-radius: 14px; overflow: hidden; }
.stat-card .label { font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; opacity: .75; }
.stat-card .value { font-size: 1.55rem; font-weight: 700; }

.text-income { color: var(--income) !important; }
.text-expense { color: var(--expense) !important; }

.badge-income { background: rgba(25,135,84,.12); color: var(--income); }
.badge-expense { background: rgba(220,53,69,.12); color: var(--expense); }

.table > :not(caption) > * > * { padding: .55rem .65rem; }
.table thead th { font-size: .78rem; text-transform: uppercase; letter-spacing: .03em; color: #667085; }

.login-wrapper {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--brand-dark), var(--brand));
}
.login-card { width: 100%; max-width: 400px; border-radius: 18px; }

.filter-bar { background: #fff; border-radius: 12px; padding: 1rem; box-shadow: 0 1px 4px rgba(16,24,40,.06); }

a.row-action { text-decoration: none; }
