:root {
    --ccnl-navy: #0b2545;
    --ccnl-navy-dark: #071a33;
    --ccnl-gold: #c8973a;
    --ccnl-bg: #f4f6f9;
    --ccnl-danger: #b3261e;
    --ccnl-success: #1e7a34;
    --ccnl-warning: #9a6700;
}

body {
    background: var(--ccnl-bg);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 0.925rem;
}

/* ---- App shell ---- */
.app-sidebar {
    background: var(--ccnl-navy);
    min-height: 100vh;
    color: #fff;
}
.app-sidebar .brand {
    padding: 1.1rem 1.25rem;
    font-weight: 700;
    letter-spacing: .02em;
    border-bottom: 1px solid rgba(255,255,255,.08);
    color: #fff;
}
.app-sidebar .brand small { display:block; font-weight:400; opacity:.7; font-size: .72rem; }
.app-sidebar .nav-section-title {
    text-transform: uppercase;
    font-size: .68rem;
    letter-spacing: .08em;
    color: rgba(255,255,255,.45);
    padding: .9rem 1.25rem .25rem;
}
.app-sidebar .nav-link {
    color: rgba(255,255,255,.82);
    padding: .5rem 1.25rem;
    border-left: 3px solid transparent;
    font-size: .875rem;
}
.app-sidebar .nav-link:hover { background: rgba(255,255,255,.06); color:#fff; }
.app-sidebar .nav-link.active {
    background: rgba(255,255,255,.09);
    border-left-color: var(--ccnl-gold);
    color:#fff;
    font-weight: 600;
}
.app-topbar {
    background:#fff;
    border-bottom: 1px solid #e5e9ef;
    padding: .65rem 1.25rem;
}
.app-main { padding: 1.25rem 1.5rem 3rem; }

.card { border: 1px solid #e5e9ef; box-shadow: 0 1px 2px rgba(16,24,40,.03); border-radius: .6rem; }
.card-header { background: #fff; border-bottom: 1px solid #eef1f5; font-weight: 600; }

.stat-card { border-radius:.6rem; padding: 1rem 1.15rem; background:#fff; border:1px solid #e5e9ef; }
.stat-card .stat-value { font-size: 1.6rem; font-weight: 700; color: var(--ccnl-navy); }
.stat-card .stat-label { font-size: .78rem; color:#667085; text-transform:uppercase; letter-spacing:.04em; }

.badge-status { font-weight: 600; font-size: .72rem; padding: .35em .6em; }

.table thead th { font-size: .72rem; text-transform: uppercase; letter-spacing:.04em; color:#667085; border-bottom-width: 1px; }
.table td, .table th { vertical-align: middle; }

.btn-ccnl-primary { background: var(--ccnl-navy); border-color: var(--ccnl-navy); color:#fff; }
.btn-ccnl-primary:hover { background: var(--ccnl-navy-dark); border-color: var(--ccnl-navy-dark); color:#fff; }

.login-shell {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--ccnl-navy) 0%, var(--ccnl-navy-dark) 100%);
}
.login-card { max-width: 400px; width:100%; }

.form-label.required::after { content: " *"; color: var(--ccnl-danger); }

@media print {
    .app-sidebar, .app-topbar, .no-print { display: none !important; }
    .app-main { padding: 0; }
}
