/* Main Application Styles */
html, body {
    height: 100%;
}

body { 
    background-color: #f8f9fa;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.navbar { 
    box-shadow: 0 2px 4px rgba(0,0,0,.1); 
}

/* Logo styling */
.navbar-brand img {
    max-height: 40px;
    width: auto;
    object-fit: contain;
}

.navbar-brand {
    font-weight: 600;
}

/* Responsive logo adjustments */
@media (max-width: 576px) {
    .navbar-brand img {
        max-height: 35px;
    }
    
    .navbar-brand span {
        font-size: 0.9rem;
    }
}

.card { 
    border: none; 
    box-shadow: 0 4px 8px rgba(0,0,0,.1); 
}

.btn-primary { 
    background-color: #0d6efd; 
    border-color: #0d6efd; 
}

.badge { 
    font-size: 0.9em; 
}

/* Additional utility styles */
.text-center { 
    text-align: center; 
}

.mb-0 { 
    margin-bottom: 0; 
}

.mt-auto { 
    margin-top: auto; 
}

.py-4 { 
    padding-top: 1.5rem; 
    padding-bottom: 1.5rem; 
}

.bg-light { 
    background-color: #f8f9fa !important; 
}

/* Layout and Footer Styles */
main {
    flex: 1 0 auto;
    min-height: 0;
}

footer {
    flex-shrink: 0;
    margin-top: auto;
}

/* Natural footer positioning - appears after content */
body > footer {
    position: relative;
    width: 100%;
    z-index: 1000;
}

/* Additional footer positioning for different screen sizes */
@media (max-width: 768px) {
    footer {
        padding: 1rem 0;
    }
}

/* Ensure content doesn't get hidden behind footer */
main {
    padding-bottom: 2rem;
}

/* Natural footer behavior - only fix to bottom when content is short */
body:has(main:empty) footer,
body:has(main:only-child) footer {
    position: fixed;
    bottom: 0;
}

/* Fallback for browsers that don't support :has() */
@supports not (selector(:has(*))) {
    /* Only apply fixed positioning when content is short */
    footer {
        position: relative;
        bottom: auto;
    }
    
    main {
        margin-bottom: 2rem;
    }
}
