/**
 * CMBE — finitions mode SOMBRE (contraste & texte lisible)
 * Corrige textes noirs / boutons sombres sur fond sombre
 */

/* Texte global — rien en noir */
[data-theme="dark"] body,
[data-theme="dark"] .app-main,
[data-theme="dark"] .app-shell {
    color: var(--app-text) !important;
}

[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4,
[data-theme="dark"] h5,
[data-theme="dark"] h6,
[data-theme="dark"] .h1,
[data-theme="dark"] .h2,
[data-theme="dark"] .h3,
[data-theme="dark"] .h4,
[data-theme="dark"] .h5,
[data-theme="dark"] .h6 {
    color: var(--app-text) !important;
}

[data-theme="dark"] .text-dark,
[data-theme="dark"] .text-black,
[data-theme="dark"] .text-body {
    color: var(--app-text) !important;
}

[data-theme="dark"] label,
[data-theme="dark"] .form-label {
    color: var(--app-text-secondary) !important;
}

/* Boutons Bootstrap sombres */
[data-theme="dark"] .btn-dark {
    background: var(--app-surface-elevated) !important;
    border-color: var(--app-border-strong) !important;
    color: var(--app-text) !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .25);
}

[data-theme="dark"] .btn-dark:hover,
[data-theme="dark"] .btn-dark:focus {
    background: #2a3a55 !important;
    border-color: var(--app-primary) !important;
    color: #fff !important;
}

[data-theme="dark"] .btn-outline-dark {
    color: var(--app-text-secondary) !important;
    border-color: var(--app-border-strong) !important;
    background: transparent !important;
}

[data-theme="dark"] .btn-outline-dark:hover {
    background: var(--app-surface-elevated) !important;
    color: var(--app-text) !important;
    border-color: var(--app-primary) !important;
}

[data-theme="dark"] .btn-outline-secondary {
    color: var(--app-text-secondary) !important;
    border-color: var(--app-border-strong) !important;
}

[data-theme="dark"] .btn-light {
    background: var(--app-surface-elevated) !important;
    border-color: var(--app-border-strong) !important;
    color: var(--app-text) !important;
}

[data-theme="dark"] .btn-link {
    color: var(--app-accent) !important;
}

[data-theme="dark"] .dropdown-item {
    color: var(--app-text) !important;
}

[data-theme="dark"] .dropdown-item:hover,
[data-theme="dark"] .dropdown-item:focus {
    background: var(--app-surface-elevated) !important;
    color: var(--app-text) !important;
}

[data-theme="dark"] .list-group-item {
    color: var(--app-text) !important;
}

[data-theme="dark"] .page-link {
    background: var(--app-surface) !important;
    border-color: var(--app-border) !important;
    color: var(--app-text-secondary) !important;
}

[data-theme="dark"] .page-item.active .page-link {
    background: var(--app-primary) !important;
    border-color: var(--app-primary) !important;
    color: #0a1628 !important;
}

/* Dashboard */
[data-theme="dark"] .dashboard-page {
    background: var(--dash-surface) !important;
    border-color: var(--dash-border-strong) !important;
    color: var(--dash-text) !important;
}

[data-theme="dark"] .dashboard-page .table-tight thead th {
    background: var(--app-table-head) !important;
    color: var(--app-text) !important;
    border-bottom-color: var(--app-border-strong) !important;
}

[data-theme="dark"] .dashboard-page .table-tight tbody td {
    color: var(--dash-text) !important;
}

[data-theme="dark"] .speedometer .gauge-readout,
[data-theme="dark"] .speedometer .needle,
[data-theme="dark"] .speedometer circle[fill="#1a2332"] {
    color: var(--app-text) !important;
    stroke: var(--app-text) !important;
    fill: var(--app-text) !important;
}

[data-theme="dark"] .speedometer line.needle {
    stroke: var(--app-primary-glow) !important;
}

[data-theme="dark"] .speedometer circle[r="5"] {
    fill: var(--app-primary-glow) !important;
}

/* Resultats electoraux */
[data-theme="dark"] .stat-card,
[data-theme="dark"] .mini-chart-card,
[data-theme="dark"] .control-card,
[data-theme="dark"] .collection-card,
[data-theme="dark"] .section-toolbar {
    background: var(--app-surface) !important;
    border-color: var(--app-border) !important;
    color: var(--app-text) !important;
    box-shadow: var(--app-shadow-sm) !important;
}

[data-theme="dark"] .stat-card .label,
[data-theme="dark"] .stat-card .trend-neutral,
[data-theme="dark"] .bulk-meta,
[data-theme="dark"] .muted-kpi,
[data-theme="dark"] .control-card .label,
[data-theme="dark"] .source-kv dt,
[data-theme="dark"] .collection-card .label {
    color: var(--app-muted) !important;
}

[data-theme="dark"] .stat-card .value,
[data-theme="dark"] .control-card .value,
[data-theme="dark"] .source-kv dd,
[data-theme="dark"] .collection-card .value,
[data-theme="dark"] .mini-chart-card h6 {
    color: var(--app-text) !important;
}

[data-theme="dark"] .stat-card .icon {
    background: var(--app-info-soft) !important;
    color: var(--app-accent) !important;
}

[data-theme="dark"] .trend-up { color: #4ade80 !important; }
[data-theme="dark"] .trend-down { color: #f87171 !important; }
[data-theme="dark"] .trend-neutral { color: var(--app-muted) !important; }

[data-theme="dark"] .status-badge.soft-success {
    color: #86efac !important;
    background-color: var(--app-success-soft) !important;
    border-color: rgba(74, 222, 128, .35) !important;
}

[data-theme="dark"] .status-badge.soft-warning {
    color: #fcd34d !important;
    background-color: var(--app-warning-soft) !important;
    border-color: rgba(251, 191, 36, .35) !important;
}

[data-theme="dark"] .table-pro thead th {
    background: var(--app-table-head) !important;
    color: var(--app-text) !important;
}

[data-theme="dark"] .table-pro tbody tr:nth-child(even) {
    background: var(--app-table-stripe) !important;
}

[data-theme="dark"] .table-pro tbody tr:hover {
    background: var(--app-table-hover) !important;
}

[data-theme="dark"] .table-pro tbody td {
    color: var(--app-text) !important;
    border-color: var(--app-border) !important;
}

[data-theme="dark"] .vote-pill {
    background: var(--app-surface-muted) !important;
    border-color: var(--app-border) !important;
    color: var(--app-text-secondary) !important;
}

[data-theme="dark"] .vote-pill strong {
    color: var(--app-accent) !important;
}

[data-theme="dark"] .top-candidate-pill {
    background: var(--app-info-soft) !important;
    color: #93c5fd !important;
    border-color: rgba(96, 165, 250, .35) !important;
}

[data-theme="dark"] .collection-card .meta {
    color: var(--app-muted) !important;
}

[data-theme="dark"] .collection-card .chip {
    background: var(--app-surface-muted) !important;
    color: var(--app-text-secondary) !important;
}

/* Modales & offcanvas */
[data-theme="dark"] .modal-title,
[data-theme="dark"] .offcanvas-title {
    color: var(--app-text) !important;
}

[data-theme="dark"] pre,
[data-theme="dark"] code {
    color: var(--app-text) !important;
    background: var(--app-surface-muted) !important;
}

/* Liens & badges */
[data-theme="dark"] a:not(.btn):not(.nav-link) {
    color: var(--app-accent);
}

[data-theme="dark"] .badge.text-bg-secondary {
    background: var(--app-surface-elevated) !important;
    color: var(--app-text) !important;
}

[data-theme="dark"] .badge.text-bg-light {
    background: rgba(255, 255, 255, .14) !important;
    color: var(--app-text) !important;
    border: 1px solid var(--app-border);
}

/* Input group */
[data-theme="dark"] .input-group-text {
    color: var(--app-text-secondary) !important;
}

[data-theme="dark"] ::placeholder {
    color: var(--app-muted) !important;
    opacity: 1;
}

/* Select2 / options natifs */
[data-theme="dark"] option {
    background: var(--app-surface);
    color: var(--app-text);
}

/* Bureaux de vote */
[data-theme="dark"] .filter-card,
[data-theme="dark"] .table-wrap,
[data-theme="dark"] .active-filter-chip {
    background: var(--app-surface) !important;
    border-color: var(--app-border) !important;
    color: var(--app-text-secondary) !important;
}

[data-theme="dark"] .filter-meta,
[data-theme="dark"] .bulk-meta {
    color: var(--app-muted) !important;
}

[data-theme="dark"] .sortable-link:hover {
    color: var(--app-accent) !important;
}

[data-theme="dark"] .rate-track {
    background: var(--app-border) !important;
}

/* Cartes & panneaux resultats (fonds blancs en dur) */
[data-theme="dark"] .stat-card,
[data-theme="dark"] .filter-panel,
[data-theme="dark"] .results-filter-card {
    background: var(--app-surface) !important;
    border-color: var(--app-border) !important;
    color: var(--app-text) !important;
}

[data-theme="dark"] .app-main .card-body,
[data-theme="dark"] .app-main .card {
    color: var(--app-text) !important;
}

[data-theme="dark"] .app-main p,
[data-theme="dark"] .app-main li,
[data-theme="dark"] .app-main span:not(.badge):not(.btn) {
    color: inherit;
}

[data-theme="dark"] .text-muted {
    color: var(--app-muted) !important;
}

[data-theme="dark"] small.text-muted {
    color: var(--app-muted) !important;
}
