:root {
    --accent: #2b6cb0;
    --muted: #6c757d;
    --bg: #f7fafc;
}

body {
    font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial;
    background: var(--bg);
    margin: 0;
}

.page-wrap {
    max-width: 1400px;
    margin: 28px auto;
    padding: 20px;
}

.card-surface {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 6px 18px rgba(20, 20, 30, .06);
    padding: 20px;
}

h1 {
    font-weight: 600;
    color: #15324a;
    margin-bottom: 4px;
    font-size: 1.6rem;
}

table {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
}

thead th {
    background: #f8fafb;
    font-weight: 600;
    color: #334155;
}

td,
th {
    vertical-align: middle;
}

.badge-status {
    padding: .45em .6em;
    border-radius: 999px;
    font-weight: 600;
}

.badge-not-started {
    background: #9CA3AF;
    color: #ffffff;
}

.badge-intro-pending {
    background: #64748B;
    color: #ffffff;
}

.badge-credentials {
    background: #6366F1;
    color: #ffffff;
}

.badge-access {
    background: #8B5CF6;
    color: #ffffff;
}

.badge-in-progress {
    background: #0EA5E9;
    color: #ffffff;
}

.badge-approval {
    background: #F59E0B;
    color: #ffffff;
}

.badge-operational {
    background: #16A34A;
    color: #ffffff;
}

.badge-blocked {
    background: #DC2626;
    color: #ffffff;
}

.badge-mef {
    background: #3B82F6;
    color: #ffffff;
}

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.animate-row {
    animation: fadeUp .3s ease both;
}

.login-wrap {
    max-width: 500px;
    margin: 80px auto;
}

.btn-google {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    background: #fff;
    color: #3c4043;
    border: 1px solid #dadce0;
    border-radius: 6px;
    padding: 9px 12px;
    font-weight: 500;
    font-size: 14px;
    text-decoration: none;
    transition: box-shadow .15s ease, background .15s ease;
}

.btn-google:hover {
    background: #f8f9fa;
    box-shadow: 0 1px 2px rgba(60, 64, 67, .3), 0 1px 3px 1px rgba(60, 64, 67, .15);
    color: #3c4043;
}

.btn-google svg {
    flex-shrink: 0;
}

.divider-or {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--muted);
    font-size: 12px;
    margin: 16px 0;
}

.divider-or::before,
.divider-or::after {
    content: "";
    flex: 1;
    height: 1px;
    background: #e5e9ec;
}

.dashboard-logo {
    height: 40px;
    width: auto;
    object-fit: contain;
}

.partner-card {
    border: 1px solid #e5e9ec;
    border-radius: 10px;
    padding: 20px;
    height: 100%;
    transition: box-shadow .15s ease, transform .15s ease;
    color: inherit;
}

.partner-card:hover {
    box-shadow: 0 6px 18px rgba(20, 20, 30, .08);
    transform: translateY(-2px);
}

.partner-card-logo {
    height: 32px;
    max-width: 100%;
    object-fit: contain;
    margin-bottom: 10px;
    display: block;
}

.partner-card-fallback {
    height: 32px;
    width: 32px;
    border-radius: 8px;
    background: var(--accent);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    margin-bottom: 10px;
}

.partner-card-name {
    font-weight: 600;
    color: #15324a;
}

@media (max-width:900px) {
    .table-responsive {
        font-size: .92rem;
    }

    .page-wrap {
        padding: 12px;
    }
}
