/* ==========================================================================
   dark.css : complément du mode sombre (public + admin + TCG)
   À charger EN DERNIER dans header.tpl et header_admin.tpl.
   Prérequis : avoir retiré le préfixe « .dark, » des anciennes règles (voir guide).
   Les contrastes indiqués sont approximatifs : à revérifier avec votre mesure.
   ========================================================================== */

/* ---------- 0. Variables et color-scheme ---------- */
body.dark {
  color-scheme: dark;              /* champs, listes, barres de défilement du body */
  --d-page:    #1b1b1b;
  --d-surface: #252222;
  --d-raised:  #2f2b2b;
  --d-input:   #443a3a;
  --d-border:  #4a4444;
  --d-text:    #f2f2f2;
  --d-muted:   #b8b0b0;
  --d-link:    #8ab4f8;            /* ~7,5:1 sur --d-surface */
  --d-accent:  #6cc8cc;            /* remplace #2f777b (2,99:1) */
}
/* la barre de défilement de la fenêtre suit la racine, pas le body */
:root:has(body.dark) { color-scheme: dark; }

/* Remplace l'héritage de « color: white » que le body recevait par erreur
   des anciennes règles « .dark, .dark … » */
body.dark { background-color: var(--d-page); color: var(--d-text); }
.dark ::placeholder { color: var(--d-muted); opacity: 1; }

/* ---------- 1. Public : panneaux, liens, fiches, champs ---------- */
/* Panneaux Bootstrap, dont #Avenir et #Avenir2 */
.dark .panel,
.dark .panel-default,
.dark #Avenir,
.dark #Avenir2,
.dark .well,
.dark .list-group-item {
  background-color: var(--d-raised);
  border-color: var(--d-border);
  color: var(--d-text);
}
.dark .panel-default > .panel-heading {
  background-color: var(--d-surface);
  border-color: var(--d-border);
  color: var(--d-text);
}

/* Liens dans les zones de contenu (pas dans la barre de navigation) */
.dark .contentPage a:not(.btn):not(.btnPagination),
.dark .box a:not(.btn):not(.btnPagination),
.dark #sidebar a:not(.btn) { color: var(--d-link); }

/* Fiches événement / produit */
.dark td.fiche_label,
.dark table.fiche b { color: var(--d-accent); }

/* Champs de formulaire */
.dark input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="image"]),
.dark textarea,
.dark select,
.dark .form-control {
  background-color: var(--d-input);
  color: var(--d-text);
  border-color: var(--d-border);
}
.dark #blocSearch { background: var(--d-input); }

/* Tableaux Bootstrap */
.dark .table > thead > tr > th,
.dark .table > tbody > tr > td { border-color: var(--d-border); }
.dark .table-striped > tbody > tr:nth-of-type(odd) { background-color: var(--d-raised); }

/* ---------- 2. Administration (header_admin.tpl) ---------- */
.dark #corps,
.dark #corps td,
.dark #corps th,
.dark #corps h1, .dark #corps h2, .dark #corps h3,
.dark #corps label,
.dark #corps legend,
.dark #corps p { color: var(--d-text); }
.dark #corps legend { border-color: var(--d-border); }
.dark #corps a { color: var(--d-link); }          /* remplace #0000EE (1,3:1) */
.dark #corps table,
.dark #corps td,
.dark #corps th { border-color: var(--d-border); }
.dark .tablenav-pages a,
.dark .tablenav-pages span { color: var(--d-link); border-color: var(--d-border); }
.dark .tablenav-pages .current { color: var(--d-text); }
/* Éditeur TinyMCE : le cadre est en dark ; le contenu édité dépend du skin (voir guide) */
.dark .tox-tinymce { border-color: var(--d-border); }

/* ---------- 3. TCG : page /portail/tcg (index.tpl) ---------- */
/* Les cartes sont des objets clairs : leur texte doit rester sombre en mode sombre.
   La page TCG est dans #corps, dont les règles d'administration ci-dessus (.dark #corps p…)
   éclaircissaient le <p> de la description (spécificité plus forte que .tcg-description p).
   On rétablit donc les couleurs d'origine avec une spécificité supérieure. */
.dark .tcg-card .tcg-description p,
.dark #corps .tcg-card .tcg-description p { color: #555; text-shadow: none; }
.dark .tcg-card.tcg-modele-full_art .tcg-description p,
.dark #corps .tcg-card.tcg-modele-full_art .tcg-description p { color: #eeeeee; text-shadow: 0 1px 3px rgba(0,0,0,0.85); }
.dark .tcg-message { color: #ff8a85; }
.dark .tcg-aide,
.dark .tcg-info-sous,
.dark .tcg-note,
.dark .tcg-tuile-note,
.dark .tcg-tuile-titre,
.dark .tcg-chapitre-compteur,
.dark .tcg-qte,
.dark .tcg-rarete { color: var(--d-muted); }

.dark .tcg-tuile { background: var(--d-raised); border-color: var(--d-border); color: var(--d-text); }
.dark .tcg-tuile-valeur strong { color: #6ea8fe; }
.dark .tcg-jauge,
.dark .tcg-barre,
.dark .tcg-minuteur { background: var(--d-border); }
.dark .tcg-progression span { background: #5a5252; }

.dark .tcg-regle { background: var(--d-raised); border-color: var(--d-border); color: var(--d-text); }
.dark .tcg-regle p { color: #ddd; }

.dark .tcg-stats { background: var(--d-raised); color: var(--d-text); }
.dark .tcg-stats th,
.dark .tcg-stats td { border-color: var(--d-border); }
.dark .tcg-stats thead th { background: #3a3333; }
.dark .tcg-stats tbody th { background: var(--d-surface); }

.dark .tcg-annonce-special { background: #4a3f10; border-color: #c9a21a; color: #fff3b0; }
.dark .tcg-felicitation { background: linear-gradient(135deg, #4a3f10, #3a3208); border-color: #c9a21a; color: var(--d-text); box-shadow: none; }
.dark .tcg-felicitation-parfait { background: linear-gradient(135deg, #352a52, #1f3350 55%, #4a3a1e); border-color: #a98bff; }

/* ---------- 4. TCG : pages admin et collection du profil ---------- */
.dark .tcg-publication { background: var(--d-raised); border-left-color: #888; color: var(--d-text); }
.dark .tcg-publication.tcg-publie { background: #1f3321; }
.dark .tcg-publication.tcg-brouillon { background: #3a3010; }
.dark .tcg-chapitre-info { background: #232b36; color: var(--d-text); }
.dark .tcg-vierge { background: var(--d-raised); border-color: #5a5252; color: #7a7272; }
.dark .tcg-slider { background: #6a6262; }
.dark .tcg-toggle-brillant:checked ~ .tcg-switch .tcg-slider { background: #f0c419; }
.dark .tcg-badge-brillant { color: #ff8a85; }
.dark .tcg-chapitre h2 { color: var(--d-text); }
