/* ===== DARK MODE UNIVERSEL - POUR TOUT AFRISUM ===== */

/* ============ VARIABLES DARK MODE ============ */
.dark-mode {
    --bg-primary: #1a1a2e;
    --bg-secondary: #16213e;
    --bg-gradient: linear-gradient(135deg, #16213e 0%, #0f3460 100%);
    --bg-card: #2c3e50;
    --bg-input: #34495e;
    --bg-hover: #2c3e50;
    --bg-progress: #34495e;
    --bg-upload: #2c3e50;
    --bg-upload-hover: #34495e;
    --bg-upload-drag: #1b5e20;
    --bg-domain: #34495e;
    --bg-domain-selected: #1a237e;
    --bg-stats: #2c3e50;
    --bg-selected-file: linear-gradient(135deg, #0d47a1 0%, #1565c0 100%);
    --bg-status-ready: #1e4620;
    --bg-status-processing: #4d3800;
    --bg-status-error: #5c1a1a;
    --bg-status-success: #0c3540;
    
    --text-primary: #ecf0f1;
    --text-secondary: #ecf0f1;
    --text-light: #bdc3c7;
    --text-muted: #95a5a6;
    --text-stats: #95a5a6;
    --text-status-ready: #a5d6a7;
    --text-status-processing: #ffecb3;
    --text-status-error: #f8b9b9;
    --text-status-success: #b2ebf2;
    
    --border-primary: #34495e;
    --border-secondary: #2c3e50;
    --border-upload: #2980b9;
    --border-upload-hover: #3498db;
    --border-upload-drag: #4caf50;
    --border-domain: #34495e;
    --border-domain-selected: #2196f3;
    --border-selected-file: #1e88e5;
    --border-status: #66bb6a;
    
    --color-primary: #2980b9;
    --color-primary-dark: #3498db;
    --color-secondary: #27ae60;
    --color-secondary-dark: #2ecc71;
    --color-accent: #c0392b;
    --color-pdf: #c0392b;
    --color-domain-icon: #bdc3c7;
    --color-domain-selected: #64b5f6;
    
    --shadow-card: 0 4px 20px rgba(0, 0, 0, 0.3);
    --shadow-button: 0 4px 12px rgba(41, 128, 185, 0.3);
    --shadow-button-hover: 0 6px 20px rgba(41, 128, 185, 0.4);
    --shadow-button-success: 0 4px 12px rgba(39, 174, 96, 0.3);
    --shadow-domain: 0 6px 15px rgba(41, 128, 185, 0.25);
    --shadow-domain-selected: 0 6px 15px rgba(33, 150, 243, 0.3);
}

/* ============ CORPS DE PAGE ============ */
.dark-mode body {
    background: var(--bg-gradient) !important;
    color: var(--text-primary) !important;
}

.dark-mode main {
    background: transparent;
}

/* ============ NAVIGATION ============ */
.dark-mode .navbar {
    background-color: #16213e !important;
    border-bottom: 1px solid #34495e !important;
}

.dark-mode .navbar .nav-link {
    color: #ecf0f1 !important;
}

.dark-mode .navbar .nav-link:hover {
    color: #64b5f6 !important;
    background-color: transparent !important;
}

.dark-mode .navbar .btn-primary {
    background: #2980b9 !important;
    color: white !important;
}

.dark-mode .navbar .btn-primary:hover {
    background: #3498db !important;
}

/* ============ CARTES ET CONTENEURS ============ */
.dark-mode .card,
.dark-mode .panel,
.dark-mode .widget,
.dark-mode .modal-content,
.dark-mode .dropdown-menu,
.dark-mode .result-card,
.dark-mode .resource-card,
.dark-mode .stat-card,
.dark-mode .upload-section,
.dark-mode .info-card {
    background-color: var(--bg-card) !important;
    border-color: var(--border-primary) !important;
    color: var(--text-primary) !important;
}

.dark-mode .card-header,
.dark-mode .modal-header,
.dark-mode .modal-footer {
    background-color: rgba(0,0,0,0.2) !important;
    border-bottom-color: var(--border-primary) !important;
    border-top-color: var(--border-primary) !important;
}

/* ============ TYPOGRAPHIE ============ */
.dark-mode h1,
.dark-mode h2,
.dark-mode h3,
.dark-mode h4,
.dark-mode h5,
.dark-mode h6,
.dark-mode p,
.dark-mode span,
.dark-mode div:not(.status):not(.badge) {
    color: var(--text-primary) !important;
}

.dark-mode .text-muted {
    color: var(--text-muted) !important;
}

.dark-mode .text-primary {
    color: #64b5f6 !important;
}

.dark-mode .text-success {
    color: #7ec850 !important;
}

.dark-mode .text-danger {
    color: #ff6b6b !important;
}

.dark-mode .text-warning {
    color: #ffb74d !important;
}

/* ============ BOUTONS ============ */
.dark-mode .btn-primary {
    background: linear-gradient(135deg, #2980b9, #3498db) !important;
    color: white !important;
    border: none !important;
}

.dark-mode .btn-success {
    background: linear-gradient(135deg, #27ae60, #2ecc71) !important;
    color: white !important;
}

.dark-mode .btn-light,
.dark-mode .btn-secondary {
    background: #34495e !important;
    color: white !important;
    border-color: #2c3e50 !important;
}

.dark-mode .btn-outline-primary {
    border-color: #3498db !important;
    color: #3498db !important;
}

.dark-mode .btn-outline-primary:hover {
    background: #3498db !important;
    color: white !important;
}

/* ============ FORMULAIRES ============ */
.dark-mode .form-control,
.dark-mode textarea,
.dark-mode input[type="text"],
.dark-mode input[type="email"],
.dark-mode input[type="password"],
.dark-mode select {
    background-color: var(--bg-input) !important;
    border-color: var(--border-primary) !important;
    color: var(--text-primary) !important;
}

.dark-mode .form-control:focus,
.dark-mode textarea:focus {
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 3px rgba(41, 128, 185, 0.3) !important;
}

.dark-mode .input-group-text {
    background-color: #2c3e50 !important;
    border-color: var(--border-primary) !important;
    color: var(--text-light) !important;
}

/* ============ TABLEAUX ============ */
.dark-mode .table {
    color: var(--text-primary) !important;
}

.dark-mode .table td,
.dark-mode .table th {
    border-color: var(--border-primary) !important;
}

.dark-mode .table-hover tbody tr:hover {
    background-color: rgba(52, 73, 94, 0.5) !important;
}

/* ============ ALERTES ============ */
.dark-mode .alert-info {
    background-color: #0c5460 !important;
    color: #d1ecf1 !important;
    border-color: #0c5460 !important;
}

.dark-mode .alert-warning {
    background-color: #4d3800 !important;
    color: #ffecb3 !important;
    border-color: #4d3800 !important;
}

.dark-mode .alert-success {
    background-color: #1e4620 !important;
    color: #a5d6a7 !important;
    border-color: #1e4620 !important;
}

.dark-mode .alert-danger {
    background-color: #5c1a1a !important;
    color: #f8b9b9 !important;
    border-color: #5c1a1a !important;
}

/* ============ BADGES ET TAGS ============ */
.dark-mode .badge.bg-primary,
.dark-mode .tag-primary {
    background: #1a237e !important;
    color: #90caf9 !important;
}

.dark-mode .badge.bg-success,
.dark-mode .tag-success {
    background: #1e4620 !important;
    color: #a5d6a7 !important;
}

.dark-mode .badge.bg-warning,
.dark-mode .tag-warning {
    background: #4d3800 !important;
    color: #ffecb3 !important;
}

.dark-mode .badge.bg-danger,
.dark-mode .tag-danger {
    background: #5c1a1a !important;
    color: #f8b9b9 !important;
}

/* ============ CREDIT BADGE ============ */
.dark-mode .credit-badge {
    background: #2980b9 !important;
    color: white !important;
}

/* ============ SÉLECTEUR DE DOMAINE ============ */
.dark-mode .domain-option {
    background: var(--bg-domain) !important;
    border-color: var(--border-domain) !important;
    color: var(--text-primary) !important;
}

.dark-mode .domain-option i {
    color: var(--color-domain-icon) !important;
}

.dark-mode .domain-option.selected {
    background: var(--bg-domain-selected) !important;
    border-color: var(--border-domain-selected) !important;
}

.dark-mode .domain-option.selected i {
    color: var(--color-domain-selected) !important;
}

.dark-mode .domain-option.selected span {
    color: white !important;
}

/* ============ BARRE DE PROGRESSION ============ */
.dark-mode .progress-container {
    background: #455a64 !important;
}

.dark-mode .progress-bar {
    background: linear-gradient(90deg, #2980b9, #27ae60) !important;
}

/* ============ STATUS ============ */
.dark-mode .status.ready {
    background: var(--bg-status-ready) !important;
    color: var(--text-status-ready) !important;
}

.dark-mode .status.processing {
    background: var(--bg-status-processing) !important;
    color: var(--text-status-processing) !important;
}

.dark-mode .status.success {
    background: var(--bg-status-success) !important;
    color: var(--text-status-success) !important;
}

.dark-mode .status.error {
    background: var(--bg-status-error) !important;
    color: var(--text-status-error) !important;
}

/* ============ FICHIER SÉLECTIONNÉ ============ */
.dark-mode #selectedFileInfo {
    background: var(--bg-selected-file) !important;
    border-color: var(--border-selected-file) !important;
}

/* ============ STATISTIQUES ============ */
.dark-mode .stats {
    background: var(--bg-stats) !important;
    color: var(--text-stats) !important;
}

/* ============ FOOTER ============ */
.dark-mode footer {
    background-color: #0c2461 !important;
    color: white !important;
}

.dark-mode footer a {
    color: #64b5f6 !important;
}

.dark-mode footer a:hover {
    color: #90caf9 !important;
}

/* ============ MODAL ============ */
.dark-mode .modal-content {
    background: var(--bg-card) !important;
    color: var(--text-primary) !important;
}

.dark-mode .btn-close {
    filter: invert(1) !important;
}

/* ============ BACKGROUND UTILITIES ============ */
.dark-mode .bg-light {
    background-color: #2c3e50 !important;
}

.dark-mode .bg-white {
    background-color: var(--bg-card) !important;
}

.dark-mode .bg-dark {
    background-color: #0c2461 !important;
}

/* ============ BORDURES ============ */
.dark-mode .border,
.dark-mode .border-top,
.dark-mode .border-bottom,
.dark-mode .border-left,
.dark-mode .border-right {
    border-color: var(--border-primary) !important;
}

/* ============ LIENS ============ */
.dark-mode a:not(.btn):not(.nav-link) {
    color: #64b5f6 !important;
}

.dark-mode a:hover:not(.btn):not(.nav-link) {
    color: #90caf9 !important;
}

/* ============ LISTES ============ */
.dark-mode .list-group-item {
    background-color: var(--bg-card) !important;
    border-color: var(--border-primary) !important;
    color: var(--text-primary) !important;
}

/* ============ PAGINATION ============ */
.dark-mode .page-item.active .page-link {
    background-color: #2980b9 !important;
    border-color: #2980b9 !important;
}

.dark-mode .page-link {
    background-color: var(--bg-card) !important;
    border-color: var(--border-primary) !important;
    color: var(--text-primary) !important;
}

/* ============ CODE ============ */
.dark-mode code,
.dark-mode pre {
    background-color: #2c3e50 !important;
    color: #f8f9fa !important;
    border-color: var(--border-primary) !important;
}

/* ============ SCROLLBAR ============ */
.dark-mode ::-webkit-scrollbar-track {
    background: var(--bg-secondary) !important;
}

.dark-mode ::-webkit-scrollbar-thumb {
    background: #455a64 !important;
}

.dark-mode ::-webkit-scrollbar-thumb:hover {
    background: #546e7a !important;
}