:root {
    --azul-principal: #2f6fa8;
    --azul-oscuro: #1c4a73;
    --gris-fondo: #f5f7fa;
    --gris-borde: #e2e6ea;
}

body {
    background-color: var(--gris-fondo);
    font-family: 'Segoe UI', Roboto, Arial, sans-serif;
}

.login-body {
    background: linear-gradient(160deg, #eef3f8 0%, #f7f9fb 100%);
}

.login-card {
    border: none;
    border-radius: 14px;
}

.brand-mark {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: conic-gradient(from 0deg, #e14b4b, #f2a93b, #3fb0e5, #2f6fa8, #e14b4b);
}

.sidebar {
    width: 260px;
    min-height: calc(100vh - 62px);
    background: #ffffff;
    border-right: 1px solid var(--gris-borde);
}

.sidebar .nav-link,
.offcanvas .nav-link {
    color: #445;
    padding: 0.55rem 1.25rem;
    font-size: 0.94rem;
    border-left: 3px solid transparent;
}

.sidebar .nav-link:hover,
.offcanvas .nav-link:hover {
    background: #f0f5fa;
}

.sidebar .nav-link.active,
.offcanvas .nav-link.active {
    background: #eaf2fa;
    color: var(--azul-principal);
    border-left-color: var(--azul-principal);
    font-weight: 600;
}

.content-area {
    max-width: 1400px;
}

.page-title {
    color: var(--azul-principal);
    font-weight: 600;
}

.card-panel {
    border: 1px solid var(--gris-borde);
    border-radius: 10px;
}

.table-egresados td, .table-egresados th {
    vertical-align: middle;
    font-size: 0.92rem;
}

.row-contactado {
    border-left: 4px solid #4caf50;
}
.row-no-contactado {
    border-left: 4px solid #e14b4b;
}

.badge-contactado {
    background-color: #e8f5e9;
    color: #2e7d32;
}
.badge-no-contactado {
    background-color: #fdecea;
    color: #c62828;
}

.accordion-button:not(.collapsed) {
    background-color: #eaf2fa;
    color: var(--azul-oscuro);
}

.avatar-placeholder {
    width: 90px;
    height: 90px;
    border-radius: 50%;
    background: #eef2f6;
    border: 1px solid var(--gris-borde);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.2rem;
    color: #b7c0c9;
    object-fit: cover;
}
