.flex { display: flex; }
.flex-col { display: flex; flex-direction: column; }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.justify-center { justify-content: center; }
.gap-2 { gap: 8px; }
.gap-3 { gap: 12px; }
.gap-4 { gap: 16px; }

.text-center { text-align: center; }
.text-right { text-align: right; }

.text-gradient {
    background: linear-gradient(135deg, var(--text-primary) 0%, var(--accent-neon) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.text-gold { color: var(--accent-gold); }
.text-neon { color: var(--accent-neon); }
.text-purple { color: var(--accent-purple); }
.text-muted { color: var(--text-muted); }
.text-secondary { color: var(--text-secondary); }

.badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: var(--radius-full);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.badge-president {
    background: rgba(251, 191, 36, 0.15);
    color: var(--accent-gold);
    border: 1px solid rgba(251, 191, 36, 0.3);
}

.badge-vp {
    background: rgba(192, 132, 252, 0.15);
    color: var(--accent-purple);
    border: 1px solid rgba(192, 132, 252, 0.3);
}

.badge-senior {
    background: rgba(102, 252, 241, 0.12);
    color: var(--accent-neon);
    border: 1px solid rgba(102, 252, 241, 0.25);
}

.badge-member {
    background: rgba(148, 163, 184, 0.1);
    color: var(--text-secondary);
    border: 1px solid rgba(148, 163, 184, 0.2);
}

.retry-btn {
    margin-top: 16px;
    background: var(--accent-neon);
    color: #0b0e14;
    padding: 8px 18px;
    border-radius: var(--radius-md);
    font-weight: 700;
    cursor: pointer;
    transition: opacity 0.2s ease;
}

.retry-btn:hover {
    opacity: 0.9;
}

.hidden { display: none !important; }
