:root {
    --gym-ink: #0f172a;
    --gym-ink-soft: #1f2937;
    --gym-accent: #16a34a;
    --gym-accent-dark: #0f7a36;
    --gym-surface: #f8fafc;
    --gym-surface-2: #eef2f7;
    --gym-shadow: rgba(15, 23, 42, 0.08);
}

.gym-portal {
    background: linear-gradient(180deg, #ffffff 0%, #f4f7fb 100%);
}

.gym-portal .gym-page-title {
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--gym-ink);
    font-weight: 700;
}

.gym-portal .gym-hero {
    background: linear-gradient(120deg, rgba(22, 163, 74, 0.08), rgba(15, 23, 42, 0.04));
    border-radius: 16px;
    padding: 18px 12px;
    border: 1px solid rgba(15, 23, 42, 0.06);
}

.gym-portal .card {
    border-radius: 16px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    box-shadow: 0 12px 30px var(--gym-shadow);
}

.gym-portal .card h2,
.gym-portal .card h3,
.gym-portal .card h4 {
    color: var(--gym-ink-soft);
    font-weight: 600;
}

.gym-portal .btn-primary {
    background-color: var(--gym-accent);
    border-color: var(--gym-accent);
    font-weight: 600;
}

.gym-portal .btn-primary:hover {
    background-color: var(--gym-accent-dark);
    border-color: var(--gym-accent-dark);
}

.gym-portal .btn-outline-primary {
    color: var(--gym-accent);
    border-color: var(--gym-accent);
}

.gym-portal .btn-outline-primary:hover {
    background-color: var(--gym-accent);
    color: #fff;
}

.gym-portal .table {
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}

.gym-portal .table thead th {
    background: var(--gym-surface-2);
    color: var(--gym-ink);
    text-transform: uppercase;
    font-size: 0.75rem;
    letter-spacing: 0.08em;
}

.gym-portal .table tbody tr:nth-child(even) {
    background: var(--gym-surface);
}

.gym-portal .alert-info {
    border-radius: 12px;
    border: 1px solid rgba(22, 163, 74, 0.2);
    background: rgba(22, 163, 74, 0.08);
    color: var(--gym-ink);
}

.gym-portal-card {
    background: linear-gradient(135deg, #ffffff 0%, #f1f5f9 100%);
    border: 1px solid rgba(15, 23, 42, 0.08);
    box-shadow: 0 10px 24px var(--gym-shadow);
}

.gym-portal-card h5 {
    color: var(--gym-ink);
    font-weight: 700;
}

.gym-portal-card p {
    color: #4b5563;
}

.gym-portal-card img {
    filter: drop-shadow(0 6px 10px rgba(15, 23, 42, 0.15));
}

@media (max-width: 767px) {
    .gym-portal .gym-hero {
        padding: 14px 10px;
    }

    .gym-portal .card {
        border-radius: 14px;
    }
}
