/* --- Main Theme & Layout --- */

body {
    background-color: #121212;
    color: #e0e0e0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

#main-container {
    flex-grow: 1;
}

/* --- Header & Footer --- */
.navbar {
    background-color: #1e1e1e !important;
    border-bottom: 1px solid #333;
    flex-shrink: 0;
}

.navbar-brand { 
    color: #fff !important; 
}

footer {
    background-color: #1e1e1e !important;
    border-top: 1px solid #333;
    flex-shrink: 0;
    margin-top: auto;
}

/* --- Input Section --- */
#input-section .card {
    background: #1e1e1e;
    border: 1px solid #333;
    text-align: center;
}
#input-section h1 { color: #fff; }
#input-section p { color: #aaa; }

#features-section .feature-card {
    background: #1e1e1e;
    border: 1px solid #333;
    border-radius: 8px;
    height: 100%;
}
#features-section h4 { color: #fff; }
#features-section p { color: #aaa; }

/* --- Report Layout & Cards --- */
.report-section-header {
    font-size: 1.25rem;
    font-weight: 500;
    color: #fff;
    border-bottom: 2px solid #0d6efd;
    padding-bottom: 0.5rem;
    margin-top: 2rem;
    margin-bottom: 1.5rem;
}

.report-card {
    background-color: #1e1e1e;
    border: 1px solid #333;
    border-radius: 8px;
    margin-bottom: 1.5rem;
    padding: 1.5rem;
    height: 100%;
}

.report-card h4 {
    font-size: 1.1rem;
    font-weight: 600;
    color: #fff;
    margin-bottom: 1rem;
}

/* --- Sidebar --- */
#summary-sidebar .report-card h4 {
    text-align: center;
}

.summary-card .display-4 { font-weight: 700; }
.summary-card .text-passed { color: #28a745; }
.summary-card .text-issues { color: #dc3545; }

/* --- Performance Section --- */
.nav-tabs {
    border-bottom-color: #333;
}

.nav-tabs .nav-link {
    background-color: transparent;
    border: 1px solid #333;
    color: #aaa;
    border-top-left-radius: .5rem;
    border-top-right-radius: .5rem;
}

.nav-tabs .nav-link.active {
    background-color: #1e1e1e;
    border-color: #333 #333 #1e1e1e;
    color: #fff;
}

.tab-content {
    background-color: #1e1e1e;
    padding: 1.5rem;
    border: 1px solid #333;
    border-top: none;
    border-radius: 0 0 8px 8px;
}

.metric-card {
    background-color: #2a2a2a;
    padding: 1rem;
    border-radius: 8px;
    text-align: center;
    height: 100%;
}

.metric-value {
    font-size: 1.5rem;
    font-weight: 600;
    color: #fff;
}

.metric-label {
    font-size: 0.85rem;
    color: #aaa;
}

/* --- Generic Cards & Lists --- */
.info-card p {
    font-size: 1.5rem;
    font-weight: 600;
    color: #fff;
    margin: 0;
}
.info-card .text-muted { color: #aaa !important; }

.list-card ul {
    padding-left: 0;
    list-style: none;
    margin-bottom: 0;
    max-height: 250px;
    overflow-y: auto;
}

.list-card li {
    padding: 0.75rem 0;
    border-bottom: 1px solid #333;
}

.list-card li:last-child {
    border-bottom: none;
}

.list-card li code {
    font-size: 0.85rem;
    word-break: break-all;
    background-color: #333;
    padding: 2px 4px;
    border-radius: 4px;
}

/* --- Utility Classes --- */
.status-icon { font-size: 1.2rem; margin-right: 0.5rem; }
.text-success { color: #28a745 !important; }
.text-warning { color: #ffc107 !important; }
.text-danger { color: #dc3545 !important; }

/* --- Loader --- */
#loader p { color: #fff; }
#loader .spinner-border { width: 3rem; height: 3rem; color: #fff; }

.card-loader {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 150px;
    color: #fff;
}
