/*
 * Habillage de Simple-DataTables (assets/vendor/simple-datatables/) pour
 * reprendre les tokens du design system — même esprit que
 * choices-theme.css / flatpickr-theme.css pour les autres bibliothèques
 * vendorées. Ne charge que sur les pages qui déclarent $conf_datatable_export
 * avant d'inclure includes/header.php (voir includes/head_assets.php).
 */

.datatable-wrapper .datatable-top,
.datatable-wrapper .datatable-bottom {
	padding: var(--ag-space-3) var(--ag-space-4);
}

.datatable-wrapper .datatable-input,
.datatable-wrapper .datatable-selector {
	border: 1px solid var(--ag-color-border);
	border-radius: var(--ag-radius-sm);
	padding: 6px 10px;
	font-size: var(--ag-font-size-sm);
	font-family: inherit;
	color: var(--ag-color-text);
	background: var(--ag-color-surface);
}

.datatable-wrapper .datatable-input:focus,
.datatable-wrapper .datatable-selector:focus {
	outline: none;
	border-color: var(--ag-color-primary);
	box-shadow: 0 0 0 3px var(--ag-color-primary-soft);
}

/*
 * Le bloc "Affichage de X à Y sur Z" natif de Simple-DataTables n'est généré
 * que si la pagination est active. On le masque systématiquement et on le
 * remplace par .ag-datatable-count (assets/js/ag-datatable.js), qui
 * fonctionne aussi bien avec ou sans pagination.
 */
.datatable-wrapper .datatable-info {
	display: none;
}

.ag-datatable-count {
	padding: var(--ag-space-2) var(--ag-space-4);
	font-size: var(--ag-font-size-sm);
	color: var(--ag-color-text-muted);
	border-top: 1px solid var(--ag-color-border);
}

.datatable-wrapper .datatable-table {
	margin: 0;
}

/*
 * Champ Recherche à gauche au lieu de la droite (retour utilisateur du
 * 23/08/2026, "comme dans la version actuelle") : Simple-DataTables
 * (assets/vendor/simple-datatables/simple-datatables.css) flotte à droite
 * ".datatable-top > div:not(first-child)" — un sélecteur qui EXCLUT
 * explicitement le premier enfant. Quand la pagination est désactivée
 * (dynamicTable2/3/4/6, voir ag-datatable.js), il n'y a aucun sélecteur de
 * longueur de page à afficher : .datatable-search (le champ Recherche)
 * devient alors le SEUL enfant de .datatable-top, donc à la fois premier
 * ET dernier — il ne correspond qu'à la règle ":first-child" (float:
 * left), jamais à ":not(first-child)", et se retrouve à gauche. Ciblé ici
 * par sa classe plutôt que sa position pour rester à droite dans tous les
 * cas, y compris seul.
 *
 * Vérifié en direct (23/08/2026) : un premier essai avec le sélecteur
 * ".datatable-top .datatable-search" (2 classes) restait sans effet —
 * spécificité inférieure à la règle vendorée ".datatable-top > div:
 * first-child" (2 classes + 1 sélecteur de type "div"), qui l'emporte donc
 * malgré un ordre de chargement plus tardif. ">div.datatable-search"
 * ci-dessous réintroduit ce même sélecteur de type pour égaler exactement
 * cette spécificité — l'ordre de chargement (ce fichier après le CSS
 * vendoré, voir includes/head_assets.php) suffit alors à trancher.
 */
.datatable-top > div.datatable-search {
	float: right;
}

.datatable-wrapper .datatable-sorter {
	cursor: pointer;
}

/*
 * En-tête bleu (couleur primaire du design system) et lignes alternées —
 * demandé explicitement par l'utilisateur pour tous les tableaux munis d'un
 * DataTable.
 */
.datatable-wrapper .datatable-table thead th {
	background: var(--ag-color-primary);
	color: var(--ag-color-primary-contrast);
}

/* Les flèches de tri de Simple-DataTables sont noires par défaut :
 * repassées en blanc pour rester visibles sur l'en-tête bleu. */
.datatable-wrapper .datatable-table thead .datatable-sorter::before,
.datatable-wrapper .datatable-table thead .datatable-sorter::after {
	opacity: 0.55;
}

.datatable-wrapper .datatable-table thead .datatable-sorter::before {
	border-top-color: var(--ag-color-primary-contrast);
}

.datatable-wrapper .datatable-table thead .datatable-sorter::after {
	border-bottom-color: var(--ag-color-primary-contrast);
}

.datatable-wrapper .datatable-table thead .datatable-ascending .datatable-sorter::after,
.datatable-wrapper .datatable-table thead .datatable-descending .datatable-sorter::before {
	opacity: 1;
}

/*
 * Alignement VERTICAL du texte dans les cellules (haut/bas/centre) —
 * l'alignement horizontal reste piloté côté PHP (ex. classe "center" posée
 * par table_td(), includes/pages.php). Simple-DataTables force
 * vertical-align: top/bottom par défaut sur les en-têtes et les cellules
 * (voir assets/vendor/simple-datatables/simple-datatables.css) : recentré ici.
 */
.datatable-wrapper .datatable-table th,
.datatable-wrapper .datatable-table td {
	vertical-align: middle;
}

.datatable-wrapper .datatable-table tbody tr:nth-child(even) {
	background: var(--ag-color-bg);
}

.datatable-wrapper .datatable-table tbody tr:hover {
	background: var(--ag-color-primary-soft);
}

.datatable-wrapper .datatable-pagination a,
.datatable-wrapper .datatable-pagination button {
	border-radius: var(--ag-radius-sm);
	color: var(--ag-color-text);
	padding: 5px 10px;
	margin-left: 4px;
}

.datatable-wrapper .datatable-pagination a:hover,
.datatable-wrapper .datatable-pagination button:hover {
	background: var(--ag-color-bg);
}

.datatable-wrapper .datatable-pagination .datatable-active a,
.datatable-wrapper .datatable-pagination .datatable-active button {
	background: var(--ag-color-primary);
	color: var(--ag-color-primary-contrast);
}

/*
 * Barre d'export (Copier/Excel/PDF/Imprimer) — ajoutée par
 * assets/js/ag-datatable.js au-dessus de la table, uniquement pour les
 * préréglages qui l'activent (voir PRESETS dans ce même fichier).
 * Mise en page de .ag-table-toolbar elle-même : voir table.css (source
 * unique, ce fichier ne la redéfinit plus depuis l'audit du 24/08/2026).
 */
.ag-datatable-toolbar__btn {
	font-size: var(--ag-font-size-xs);
	padding: 5px 10px;
}
