:root {
    --navy: #1F3A5F; --teal: #2A7F8E; --gold: #E0A526; --red: #B42318; --green: #1E7B3C;
    --bs-primary: #1F3A5F; --bs-primary-rgb: 31, 58, 95;
    --bs-body-bg: #F3F6FA; --bs-body-font-size: .95rem;
}
body { background: var(--bs-body-bg); }
.btn-primary { --bs-btn-bg: var(--navy); --bs-btn-border-color: var(--navy); --bs-btn-hover-bg: #17304f; --bs-btn-hover-border-color: #17304f; --bs-btn-active-bg: #132842; }
.btn-outline-primary { --bs-btn-color: var(--navy); --bs-btn-border-color: var(--navy); --bs-btn-hover-bg: var(--navy); --bs-btn-hover-border-color: var(--navy); }
a { color: var(--teal); }
.app-nav { background: var(--navy); box-shadow: 0 2px 8px rgba(0,0,0,.12); }
.app-nav .nav-link { color: rgba(255,255,255,.75); }
.app-nav .nav-link.active, .app-nav .nav-link:hover { color: #fff; }
.app-nav .nav-link.active { box-shadow: inset 0 -3px 0 var(--gold); }
.card { border: 0; border-radius: .75rem; }
.card-header { border-top-left-radius: .75rem !important; border-top-right-radius: .75rem !important; }
.section-head { background: var(--navy); color: #fff; font-weight: 600; }
.section-head-danger { background: #7A1F1A; }
.kpi { background: #fff; border-radius: .6rem; padding: .7rem .9rem; border-left: 4px solid #C9D2DE; box-shadow: 0 1px 3px rgba(16,24,40,.06); height: 100%; }
.kpi span { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: #5B6B7F; }
.kpi b { font-size: 1.2rem; }
.kpi-primary { border-left-color: var(--navy); } .kpi-danger { border-left-color: var(--red); } .kpi-success { border-left-color: var(--green); }
.stat { border-radius: .75rem; color: #fff; padding: 1rem 1.1rem; height: 100%; box-shadow: 0 4px 12px rgba(16,24,40,.08); }
.stat-label { font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; opacity: .85; }
.stat-value { font-size: 1.45rem; font-weight: 700; margin-top: .2rem; }
.stat-navy { background: linear-gradient(135deg, #1F3A5F, #2C5282); }
.stat-teal { background: linear-gradient(135deg, #2A7F8E, #3AA0B0); }
.stat-red { background: linear-gradient(135deg, #9B1C1C, #C0392B); }
.stat-green { background: linear-gradient(135deg, #1E7B3C, #2F9E55); }
.register thead th { background: var(--navy); color: #fff; font-weight: 600; font-size: .8rem; white-space: nowrap; }
.register tfoot th { background: #E8EEF6; }
.register tr.is-sunday td:first-child a, .register tr.is-sunday td:nth-child(2) { color: var(--red); font-weight: 600; }
.login-bg { background: radial-gradient(circle at 20% 20%, #2A7F8E, #1F3A5F 60%); }
.login-logo { width: 64px; height: 64px; border-radius: 18px; background: rgba(255,255,255,.15); display: grid; place-items: center; font-size: 2rem; }
@media (max-width: 575px) { .stat-value { font-size: 1.15rem; } .kpi b { font-size: 1.05rem; } }

#bulk, #expenses { scroll-margin-top: 80px; }
