﻿/* Alternative approach - apply min-height to body instead of container */
body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    min-height: 100vh; /* Apply the viewport height to body instead */
}

/* Keep container simple and reliable */
.container {
    max-width: 1140px !important;
    width: 100% !important;
    margin: 0 auto !important;
    /* No min-height on container */
}

/* Navigation */
.navbar-brand {
    font-weight: bold;
}

/* Cards */
.card {
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
    border: 1px solid rgba(0, 0, 0, 0.125);
}

.card-header {
    background-color: #f8f9fa;
    border-bottom: 1px solid rgba(0, 0, 0, 0.125);
}

/* Badges */
.badge {
    font-size: 0.875em;
}

/* Tables */
.table-sm th,
.table-sm td {
    padding: 0.5rem;
}

.table code {
    background-color: #f8f9fa;
    color: #e83e8c;
    padding: 0.2rem 0.4rem;
    border-radius: 0.25rem;
    font-size: 0.875em;
}

/* Forms */
.form-control:focus {
    border-color: #86b7fe;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

/* Buttons */
.btn {
    border-radius: 0.375rem;
}

.btn-primary {
    background-color: #0d6efd;
    border-color: #0d6efd;
}

.btn-success {
    background-color: #198754;
    border-color: #198754;
}

/* Loading state */
.btn:disabled {
    opacity: 0.65;
}

/* Alerts */
.alert {
    border-radius: 0.5rem;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .col-sm-4,
    .col-sm-8 {
        margin-bottom: 0.5rem;
    }

    .table-responsive {
        font-size: 0.875rem;
    }

    /* Ensure container stays reasonable on mobile */
    .container {
        max-width: 100% !important;
        padding-left: 15px;
        padding-right: 15px;
    }
}

/* Additional responsive breakpoints */
@media (min-width: 576px) {
    .container {
        max-width: 540px !important;
    }
}

@media (min-width: 768px) {
    .container {
        max-width: 720px !important;
    }
}

@media (min-width: 992px) {
    .container {
        max-width: 960px !important;
    }
}

@media (min-width: 1200px) {
    .container {
        max-width: 1140px !important;
    }
}

/* Animation for page transitions */
.page {
    animation: fadeIn 0.3s ease-in;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Custom spacing */
.mb-2 {
    margin-bottom: 0.5rem !important;
}

/* Profile page specific styles */
#profile-page .row {
    margin-bottom: 0.75rem;
}

    #profile-page .row:last-child {
        margin-bottom: 0;
    }

/* Shibboleth info card */
#shibboleth-info .card-body {
    background-color: #f8f9fa;
}

/* Claims table styling */
#claims-table tr:hover {
    background-color: #f5f5f5;
}

/* Login page styling */
#login-page .card {
    height: 100%;
}

#login-page .card-body {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
