:root {
    --cp-azul:      #1E3A5F;
    --cp-azul-med:  #2E6DA4;
    --cp-sidebar-w: 230px;
}

/* ── LOGIN ── */
.cp-login-body {
    background: linear-gradient(135deg, var(--cp-azul) 0%, var(--cp-azul-med) 100%);
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}
.cp-login-wrap { width: 100%; max-width: 420px; padding: 1rem; }
.cp-login-card {
    background: #fff;
    border-radius: 12px;
    padding: 2.5rem 2rem;
    box-shadow: 0 20px 60px rgba(0,0,0,.25);
}
.cp-login-logo { text-align: center; margin-bottom: 1.8rem; }

/* ── LAYOUT ── */
body { background: #F0F2F5; }
.cp-topbar {
    background: var(--cp-azul);
    height: 54px;
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 1000;
}
.cp-wrapper { margin-top: 54px; min-height: calc(100vh - 54px); }
.cp-sidebar {
    width: var(--cp-sidebar-w);
    min-height: calc(100vh - 54px);
    background: #fff;
    border-right: 1px solid #e5e7eb;
    position: sticky;
    top: 54px;
    height: calc(100vh - 54px);
    overflow-y: auto;
}
.cp-main { min-height: calc(100vh - 54px); }

/* ── SIDEBAR ── */
.cp-sidebar .nav-link {
    color: #4B5563;
    border-radius: 6px;
    padding: .5rem .75rem;
    font-size: .875rem;
    display: flex;
    align-items: center;
    gap: .5rem;
}
.cp-sidebar .nav-link:hover  { background: #F3F4F6; color: var(--cp-azul); }
.cp-sidebar .nav-link.active { background: #EBF4FB; color: var(--cp-azul-med); font-weight: 600; }
.cp-sidebar-section {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #9CA3AF;
    padding: .75rem .75rem .25rem;
}

/* ── STAT CARDS ── */
.cp-stat-card {
    background: #fff;
    border-radius: 10px;
    padding: 1.2rem 1.4rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.cp-stat-icon {
    width: 48px; height: 48px;
    border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.cp-stat-num   { font-size: 1.75rem; font-weight: 700; line-height: 1; }
.cp-stat-label { font-size: .8rem; color: #6B7280; margin-top: 2px; }

/* ── GENERAL ── */
.card { border-radius: 10px; }
.btn-primary { background: var(--cp-azul-med); border-color: var(--cp-azul-med); }
.btn-primary:hover { background: var(--cp-azul); border-color: var(--cp-azul); }
