/* Bex shared dark-theme component CSS.
   Opt-in: loaded by activity-report pages, lien QA, and future Ilos.
   Project Risk's light-theme dashboard does NOT load this file. */

body {
    background-color: var(--bg-primary);
    color: var(--text-primary);
    font-family: var(--font-body);
}

h1, h2, h3 {
    font-family: var(--font-title);
}

h1 {
    color: var(--brand-green);
}

.stat-card {
    background-color: var(--bg-card);
    border: 1px solid var(--border-color);
}

.chart-card {
    background-color: var(--bg-card);
    border: 1px solid var(--border-color);
}

.data-table {
    background-color: var(--bg-table);
}

.data-table th {
    background-color: #334155;
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
}

.data-table th:hover {
    background-color: #475569;
}

.data-table th.sorted-asc::after {
    content: " \25B2";
    font-size: 0.7em;
}

.data-table th.sorted-desc::after {
    content: " \25BC";
    font-size: 0.7em;
}

.data-table td {
    white-space: nowrap;
    border-bottom: 1px solid var(--border-color);
}

.data-table tr:hover td {
    background-color: #334155;
}

.mono {
    font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, "Courier New", monospace;
}

.data-table .mono {
    font-size: 0.8rem;
}

.status-finished { color: var(--accent-green); }
.status-waiting, .status-prepared { color: var(--accent-yellow); }
.status-failed { color: var(--accent-red); }
.status-new { color: var(--accent-blue); }

.loading-spinner {
    border: 3px solid var(--border-color);
    border-top: 3px solid var(--accent-blue);
    border-radius: 50%;
    width: 40px;
    height: 40px;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
