/* GE-SitePilot : variante « noir » du socle visuel (version 1.7.0), reprise de la maquette « Suivi campagnes Écho ».
 *
 * Fond noir, or et ivoire, titres en capitales, accent italique, chiffres à chasse fixe (tabular-nums). Une seule police : « Agenda »
 * (police de la marque), déclarée dans ge-ui-noir-fonts.css ; tant que son fichier n'est pas fourni, la pile de repli système
 * s'applique et le thème reste lisible et conforme AA avec elle seule.
 *
 * Fonctionnement : la racine « .ge-ui.ge-ui--noir » REDÉFINIT les variables --ge-ui-* de ge-ui.css (les composants du socle suivent
 * sans changement) ainsi que les anciennes variables --ge-* de admin.css (les écrans qui les utilisent suivent aussi). Rien ne sort
 * de la racine : aucune règle sur :root, le corps de page, le menu ou la barre d'administration, aucun !important, aucune police ni
 * ressource externe. Une seule ressource locale est référencée : le logo, par la variable --ge-ui-logo (un seul endroit à changer
 * quand le SVG sera fourni).
 *
 * Contraste : le filet décoratif (--ge-ui-border) reste discret ; tout contour de champ ou de bouton neutre utilise
 * --ge-ui-border-control (3:1 au moins, mesuré par tests/test-interface.php).
 *
 * Contenu : 1 variables, 2 base et titres, 3 liens, 4 champs, 5 tableaux WordPress, 6 composants de la maquette, 7 adaptation
 * aux petits écrans, 8 accessibilité.
 */

/* ── 1. Variables ─────────────────────────────────────────────────────────────────────────────────────────────── */
.ge-ui.ge-ui--noir,
.ge-ui.ge-ui--portal {
	color-scheme: dark;

	/* Marque : l'or sert de fond plein (texte noir dessus) et de trait ; l'or clair de texte de marque */
	--ge-ui-brand: #c8b99d;
	--ge-ui-brand-strong: #ddd1ba;
	--ge-ui-brand-soft: #1d1912;
	--ge-ui-on-brand: #000000;

	/* Surfaces et texte */
	--ge-ui-canvas: #000000;
	--ge-ui-surface: #0c0c0c;
	--ge-ui-text: #f5f0e3;
	--ge-ui-text-muted: #b4aea0;
	--ge-ui-border: #2a2519;
	--ge-ui-border-control: #7d7766;
	--ge-ui-focus: #c8b99d;

	/* Sens : texte et fond teinté (couples mesurés par le test) */
	--ge-ui-ok: #93c49f;      --ge-ui-ok-bg: #13221a;
	--ge-ui-warn: #e0b25c;    --ge-ui-warn-bg: #2a2112;
	--ge-ui-bad: #f08a80;     --ge-ui-bad-bg: #2b1512;
	--ge-ui-info: #8fb9dc;    --ge-ui-info-bg: #101e29;
	--ge-ui-muted: #b4aea0;   --ge-ui-muted-bg: #1d1912;
	--ge-ui-danger: #f08a80;

	--ge-ui-shadow: none;
	--ge-ui-control-height: 40px;

	/* Police : « Agenda » puis la pile système (voir ge-ui-noir-fonts.css) */
	--ge-ui-font: "Agenda", system-ui, "Segoe UI", sans-serif;

	/* Logo : un seul fichier, une seule variable (à remplacer par le SVG de la marque quand il sera fourni) */
	--ge-ui-logo: url("../img/logo-groupe-echo.png");

	/* Anciennes variables de admin.css : les écrans qui les utilisent prennent la palette sombre */
	--ge-white: #0c0c0c;
	--ge-black: #f5f0e3;
	--ge-gray-light: #0c0c0c;
	--ge-gray-border: #2a2519;
	--ge-gray-text: #b4aea0;
	--ge-primary: #c8b99d;
	--ge-primary-dark: #ddd1ba;
	--ge-primary-light: #1d1912;
	--ge-success: #93c49f;
	--ge-success-bg: #13221a;
	--ge-danger: #f08a80;
	--ge-danger-bg: #2b1512;
	--ge-warning: #e0b25c;
	--ge-warning-bg: #2a2112;
	--ge-border: #2a2519;
	--ge-border-light: #1a1712;
	--ge-bg-light: #0c0c0c;
	--ge-text: #f5f0e3;
	--ge-text-muted: #b4aea0;
	--ge-text-faint: #8a8474;
	--ge-shadow: none;
}

/* ── 2. Base et titres ──────────────────────────────────────────────────────────────────────────────────────────── */
.ge-ui.ge-ui--noir {
	box-sizing: border-box;
	padding: var(--ge-ui-space-4) var(--ge-ui-space-5) var(--ge-ui-space-6);
	border-radius: var(--ge-ui-radius);
	background: var(--ge-ui-canvas);
	color: var(--ge-ui-text);
	font-family: var(--ge-ui-font);
	font-size: 15px;
	line-height: 1.5;
	font-variant-numeric: tabular-nums;
}

.ge-ui.ge-ui--noir *,
.ge-ui.ge-ui--noir *::before,
.ge-ui.ge-ui--noir *::after { box-sizing: border-box; }

.ge-ui.ge-ui--noir :is(button, input, select, textarea) { font-family: inherit; }

.ge-ui.ge-ui--noir :is(h1, h2):not(:where(.notice *)) {
	margin: 0 0 var(--ge-ui-space-3);
	color: var(--ge-ui-text);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	text-wrap: balance;
}

.ge-ui.ge-ui--noir h1:not(:where(.notice *)) { font-size: 26px; }
.ge-ui.ge-ui--noir h2:not(:where(.notice *)) { font-size: 20px; }
.ge-ui.ge-ui--noir h3:not(:where(.notice *)) { color: var(--ge-ui-text); font-size: 15px; font-weight: 600; }
.ge-ui.ge-ui--noir .wp-heading-inline { display: inline-block; margin-right: var(--ge-ui-space-3); }

/* Accent italique de la maquette : la police de repli en italique, ton or */
.ge-ui.ge-ui--noir :is(em, .ge-em):not(:where(.notice *)) {
	color: var(--ge-ui-brand);
	font-style: italic;
	font-weight: 300;
}

.ge-ui.ge-ui--noir :is(p, li, td, th, dd, dt, label, legend, summary):not(:where(.notice *)) { color: inherit; }
.ge-ui.ge-ui--noir :is(.description, p.description, .ge-sp-tk-meta, .ge-text-muted) { color: var(--ge-ui-text-muted); }

.ge-ui.ge-ui--noir code {
	padding: 1px 6px;
	border: 1px solid var(--ge-ui-border);
	border-radius: var(--ge-ui-radius);
	background: var(--ge-ui-surface);
	color: var(--ge-ui-text);
	font-size: 0.92em;
}

.ge-ui.ge-ui--noir hr { border: 0; border-top: 1px solid var(--ge-ui-border); }

/* Logo de la page : la variable --ge-ui-logo décide de l'image ; l'étiquette porte le nom pour les lecteurs d'écran */
.ge-ui.ge-ui--noir .ge-brand {
	display: block;
	width: 158px;
	height: 37px;
	margin: 0 0 var(--ge-ui-space-3);
	background: var(--ge-ui-logo) left center / contain no-repeat;
}

/* ── 3. Liens et boutons-liens ──────────────────────────────────────────────────────────────────────────────────── */
.ge-ui.ge-ui--noir :is(a, .button-link):not(.button, .ge-btn, .page-title-action):not(:where(.notice *)) {
	color: var(--ge-ui-brand-strong);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.ge-ui.ge-ui--noir :is(a, .button-link):not(.button, .ge-btn, .page-title-action):not(:where(.notice *)):hover {
	color: var(--ge-ui-text);
}

.ge-ui.ge-ui--noir .button-link-delete:not(:where(.notice *)) { color: var(--ge-ui-danger); }

.ge-ui.ge-ui--noir .page-title-action {
	min-height: var(--ge-ui-control-height);
	border: 1px solid var(--ge-ui-brand-strong);
	border-radius: var(--ge-ui-radius);
	background: var(--ge-ui-surface);
	color: var(--ge-ui-brand-strong);
	font-weight: 600;
}

.ge-ui.ge-ui--noir .page-title-action:hover {
	background: var(--ge-ui-brand-soft);
	color: var(--ge-ui-brand-strong);
}

/* ── 4. Champs : fond sombre, contour de composant à 3:1 au moins ──────────────────────────────────────────────── */
.ge-ui.ge-ui--noir :is(input[type="text"], input[type="search"], input[type="email"], input[type="url"], input[type="number"], input[type="date"], input[type="password"], input[type="tel"], select, textarea) {
	min-height: var(--ge-ui-control-height);
	border: 1px solid var(--ge-ui-border-control);
	border-radius: var(--ge-ui-radius);
	background-color: var(--ge-ui-surface);
	color: var(--ge-ui-text);
	box-shadow: none;
}

.ge-ui.ge-ui--noir :is(input, select, textarea)::placeholder { color: var(--ge-ui-text-muted); opacity: 1; }

.ge-ui.ge-ui--noir :is(input[type="text"], input[type="search"], input[type="email"], input[type="url"], input[type="number"], input[type="date"], input[type="password"], input[type="tel"], select, textarea):focus {
	border-color: var(--ge-ui-brand);
	box-shadow: none;
}

.ge-ui.ge-ui--noir :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--ge-ui-focus);
	outline-offset: 2px;
	box-shadow: none;
}

/* Flèche des listes déroulantes dessinée en CSS (la flèche d'origine est grise et disparaît sur fond noir) */
.ge-ui.ge-ui--noir select {
	padding-right: 32px;
	background-image: linear-gradient(45deg, transparent 50%, var(--ge-ui-text-muted) 50%), linear-gradient(135deg, var(--ge-ui-text-muted) 50%, transparent 50%);
	background-position: calc(100% - 18px) 55%, calc(100% - 13px) 55%;
	background-size: 5px 5px;
	background-repeat: no-repeat;
}

.ge-ui.ge-ui--noir :is(input[type="checkbox"], input[type="radio"]) {
	border: 1px solid var(--ge-ui-border-control);
	background-color: var(--ge-ui-surface);
	box-shadow: none;
}

.ge-ui.ge-ui--noir input[type="checkbox"]:checked::before { filter: brightness(1.6); }

.ge-ui.ge-ui--noir fieldset { border: 1px solid var(--ge-ui-border); border-radius: var(--ge-ui-radius); }

/* ── 5. Tableaux WordPress (.widefat, .wp-list-table, .striped) ──────────────────────────────────────────────── */
.ge-ui.ge-ui--noir :is(.widefat, .wp-list-table) {
	border: 1px solid var(--ge-ui-border);
	background: var(--ge-ui-surface);
	color: var(--ge-ui-text);
	box-shadow: none;
}

.ge-ui.ge-ui--noir .widefat :is(td, th, tfoot td, tfoot th) {
	border-color: var(--ge-ui-border);
	color: var(--ge-ui-text);
}

.ge-ui.ge-ui--noir .widefat :is(thead th, thead td, tfoot th, tfoot td) {
	background: var(--ge-ui-canvas);
	border-bottom: 1px solid var(--ge-ui-brand);
	color: var(--ge-ui-text-muted);
}

.ge-ui.ge-ui--noir .striped > tbody > :nth-child(odd) { background: rgba(200, 185, 157, 0.05); }
.ge-ui.ge-ui--noir .widefat tbody tr:hover td { background: var(--ge-ui-brand-soft); }
.ge-ui.ge-ui--noir .row-actions span { color: var(--ge-ui-text-muted); }
.ge-ui.ge-ui--noir .form-table th { color: var(--ge-ui-text); }

/* Notifications : sur fond noir, une notification claire laisserait un texte ivoire sur crème. Elles prennent donc la palette sombre,
 * avec le sens porté par le liseré gauche ET par le texte du message (jamais la couleur seule). */
.ge-ui.ge-ui--noir .notice {
	border: 1px solid var(--ge-ui-border);
	border-left: 4px solid var(--ge-ui-brand);
	background: var(--ge-ui-surface);
	color: var(--ge-ui-text);
	box-shadow: none;
}

.ge-ui.ge-ui--noir .notice-warning { border-left-color: var(--ge-ui-warn); }
.ge-ui.ge-ui--noir .notice-error { border-left-color: var(--ge-ui-bad); }
.ge-ui.ge-ui--noir .notice-success { border-left-color: var(--ge-ui-ok); }
.ge-ui.ge-ui--noir .notice-info { border-left-color: var(--ge-ui-info); }
.ge-ui.ge-ui--noir .notice :is(p, li, strong, span) { color: inherit; }
.ge-ui.ge-ui--noir .notice a { color: var(--ge-ui-brand-strong); text-decoration: underline; }

/* État vide historique du plugin : même rendu que .ge-empty */
.ge-ui.ge-ui--noir .ge-sp-empty-state {
	border: 1px dashed var(--ge-ui-border-control);
	background: var(--ge-ui-surface);
	color: var(--ge-ui-text-muted);
}

/* Un QR code reste noir sur blanc quel que soit le thème : sans cela il ne se lit pas */
.ge-ui.ge-ui--noir .ge-sp-lk-qr-preview svg { border: 1px solid var(--ge-ui-border-control); background: #ffffff; }

/* ── 6. Composants de la maquette (ils servent aux lots suivants) ────────────────────────────────────────────── */
.ge-ui.ge-ui--noir .ge-chips {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 6px;
}

.ge-ui.ge-ui--noir .ge-chip {
	min-height: 44px;
	padding: 10px 12px;
	border: 1px solid var(--ge-ui-border-control);
	border-radius: var(--ge-ui-radius);
	background: var(--ge-ui-surface);
	color: var(--ge-ui-text);
	font-size: 14px;
	line-height: 1.25;
	text-align: left;
	cursor: pointer;
}

.ge-ui.ge-ui--noir .ge-chip:hover { border-color: var(--ge-ui-brand); }

.ge-ui.ge-ui--noir .ge-chip[aria-pressed="true"] {
	border-color: var(--ge-ui-brand);
	background: var(--ge-ui-brand-soft);
	color: var(--ge-ui-brand-strong);
}

.ge-ui.ge-ui--noir .ge-tabs {
	display: flex;
	gap: 2px;
	margin: 0 0 var(--ge-ui-space-4);
	padding: 0;
	border-bottom: 1px solid var(--ge-ui-border);
	list-style: none;
	overflow-x: auto;
	overflow-y: hidden;
}

.ge-ui.ge-ui--noir .ge-tabs a,
.ge-ui.ge-ui--noir .ge-tabs button {
	display: inline-block;
	min-height: var(--ge-ui-control-height);
	margin-bottom: -1px;
	padding: 8px 12px;
	border: 0;
	border-bottom: 2px solid transparent;
	background: none;
	color: var(--ge-ui-text-muted);
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
}

.ge-ui.ge-ui--noir .ge-tabs [aria-current="page"],
.ge-ui.ge-ui--noir .ge-tabs [aria-current="true"] {
	border-bottom-color: var(--ge-ui-brand);
	color: var(--ge-ui-text);
}

.ge-ui.ge-ui--noir .ge-msg {
	padding: 8px 10px;
	border-radius: var(--ge-ui-radius);
	background: var(--ge-ui-brand-soft);
	color: var(--ge-ui-brand-strong);
	font-size: var(--ge-ui-text-sm);
}

.ge-ui.ge-ui--noir .ge-msg--err { background: var(--ge-ui-warn-bg); color: var(--ge-ui-bad); }

.ge-ui.ge-ui--noir :is(.ge-card, .ge-stat) { border-color: var(--ge-ui-border); }
.ge-ui.ge-ui--noir .ge-stat__value { color: var(--ge-ui-brand); font-weight: 500; }

/* Assistant « Créer un lien » (1.7.1) : puces de support (boutons radio), deux colonnes, aperçu, derniers liens */
.ge-ui.ge-ui--noir label.ge-chip { position: relative; display: flex; align-items: center; margin: 0; }

.ge-ui.ge-ui--noir label.ge-chip input[type="radio"] {
	position: absolute;
	width: 1px;
	height: 1px;
	min-height: 0;
	margin: 0;
	opacity: 0;
}

.ge-ui.ge-ui--noir label.ge-chip:has(input:checked) {
	border-color: var(--ge-ui-brand);
	background: var(--ge-ui-brand-soft);
	color: var(--ge-ui-brand-strong);
}

.ge-ui.ge-ui--noir label.ge-chip:has(input:focus-visible) {
	outline: 3px solid var(--ge-ui-focus);
	outline-offset: 2px;
}

.ge-ui.ge-ui--noir .ge-assist {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	gap: var(--ge-ui-space-5);
	align-items: start;
}

.ge-ui.ge-ui--noir .ge-assist__step {
	min-width: 0;
	margin: 0;
	padding: var(--ge-ui-space-4) 0;
	border: 0;
	border-top: 1px solid var(--ge-ui-border);
	border-radius: 0;
}

.ge-ui.ge-ui--noir .ge-assist__step:first-of-type { padding-top: var(--ge-ui-space-1); border-top: 0; }
.ge-ui.ge-ui--noir .ge-assist__step legend { padding: 0 0 var(--ge-ui-space-2); color: var(--ge-ui-text); font-size: 15px; font-weight: 600; }
.ge-ui.ge-ui--noir .ge-assist__step :is(input[type="text"], select) { width: 100%; max-width: 100%; }
.ge-ui.ge-ui--noir .ge-assist__step label:not(.ge-chip) { display: block; margin: 0 0 var(--ge-ui-space-1); font-weight: 600; }
.ge-ui.ge-ui--noir .ge-assist__network { margin: var(--ge-ui-space-3) 0 0; }

.ge-ui.ge-ui--noir .ge-assist__result,
.ge-ui.ge-ui--noir .ge-assist__created {
	box-sizing: border-box;
	display: grid;
	gap: var(--ge-ui-space-3);
	padding: var(--ge-ui-space-4);
	border: 1px solid var(--ge-ui-border);
	border-radius: var(--ge-ui-radius-lg);
	background: var(--ge-ui-surface);
}

.ge-ui.ge-ui--noir .ge-assist__result > * { margin: 0; }

.ge-ui.ge-ui--noir .ge-link-box {
	padding: var(--ge-ui-space-3);
	border: 1px solid var(--ge-ui-border);
	border-radius: var(--ge-ui-radius);
	background: var(--ge-ui-canvas);
	line-height: 1.5;
	overflow-wrap: anywhere;
	word-break: break-all;
}

.ge-ui.ge-ui--noir .ge-link-url { font-size: var(--ge-ui-text-sm); overflow-wrap: anywhere; word-break: break-all; }
.ge-ui.ge-ui--noir .ge-kv { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: var(--ge-ui-space-1) var(--ge-ui-space-3); font-size: var(--ge-ui-text-sm); }
.ge-ui.ge-ui--noir .ge-kv dt { color: var(--ge-ui-text-muted); }
.ge-ui.ge-ui--noir .ge-kv dd { margin: 0; overflow-wrap: anywhere; }

/* Un QR code reste noir sur blanc quel que soit le thème */
.ge-ui.ge-ui--noir .ge-qr { width: 168px; height: 168px; padding: 8px; border-radius: var(--ge-ui-radius); background: #ffffff; }
.ge-ui.ge-ui--noir .ge-qr svg { display: block; width: 152px; height: 152px; }

.ge-ui.ge-ui--noir .ge-assist__recent { margin-top: var(--ge-ui-space-6); }
.ge-ui.ge-ui--noir .ge-assist__newclient { margin-top: var(--ge-ui-space-4); }
.ge-ui.ge-ui--noir .ge-assist__newclient summary { cursor: pointer; color: var(--ge-ui-brand-strong); }
.ge-ui.ge-ui--noir .ge-recent { margin: 0; padding: 0; list-style: none; }

.ge-ui.ge-ui--noir .ge-recent li {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: var(--ge-ui-space-3);
	align-items: center;
	margin: 0;
	padding: var(--ge-ui-space-3) 0;
	border-bottom: 1px solid var(--ge-ui-border);
}

.ge-ui.ge-ui--noir [hidden] { display: none; }

@media (max-width: 900px) {
	.ge-ui.ge-ui--noir .ge-assist { grid-template-columns: minmax(0, 1fr); }
}

/* Suivi des campagnes (1.8.0) : liste des clients, fiche à onglets, objectif, leviers, aperçu du rapport */
.ge-ui.ge-ui--noir .ge-camp {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	gap: var(--ge-ui-space-5);
	align-items: start;
}

.ge-ui.ge-ui--noir .ge-camp__side {
	box-sizing: border-box;
	padding: var(--ge-ui-space-3);
	border: 1px solid var(--ge-ui-border);
	border-radius: var(--ge-ui-radius);
	background: var(--ge-ui-surface);
}

.ge-ui.ge-ui--noir .ge-camp__filter { display: grid; gap: var(--ge-ui-space-2); }
.ge-ui.ge-ui--noir .ge-camp__filter :is(input[type="search"], select) { width: 100%; max-width: 100%; }
.ge-ui.ge-ui--noir .ge-camp__panel { min-width: 0; }
.ge-ui.ge-ui--noir .ge-camp__head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: var(--ge-ui-space-3); margin-bottom: var(--ge-ui-space-2); }
.ge-ui.ge-ui--noir .ge-camp__head h2 { margin-bottom: var(--ge-ui-space-1); }
.ge-ui.ge-ui--noir .ge-camp__head p { margin: 0; }

.ge-ui.ge-ui--noir .ge-clist { max-height: 60vh; margin: var(--ge-ui-space-3) 0; padding: 0; overflow-y: auto; list-style: none; }

.ge-ui.ge-ui--noir .ge-clist a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--ge-ui-space-2);
	padding: 9px var(--ge-ui-space-3);
	border-bottom: 1px solid var(--ge-ui-border);
	color: var(--ge-ui-text);
	text-decoration: none;
}

.ge-ui.ge-ui--noir .ge-clist a:hover { background: var(--ge-ui-brand-soft); }
.ge-ui.ge-ui--noir .ge-clist a[aria-current="page"] { background: var(--ge-ui-brand-soft); color: var(--ge-ui-brand-strong); font-weight: 600; }
.ge-ui.ge-ui--noir .ge-clist__meta { color: var(--ge-ui-text-muted); font-size: var(--ge-ui-text-xs); white-space: nowrap; }

.ge-ui.ge-ui--noir .ge-goal { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: var(--ge-ui-space-5); }
.ge-ui.ge-ui--noir .ge-goal p { margin: var(--ge-ui-space-1) 0; }
.ge-ui.ge-ui--noir .ge-goal__obj { font-size: 20px; }
.ge-ui.ge-ui--noir .ge-goal__num { font-size: 18px; }
.ge-ui.ge-ui--noir .ge-spark { display: block; color: var(--ge-ui-brand); }

.ge-ui.ge-ui--noir .ge-levers { margin: 0 0 var(--ge-ui-space-3); padding: 0; border: 1px solid var(--ge-ui-border); border-radius: var(--ge-ui-radius); list-style: none; }

.ge-ui.ge-ui--noir .ge-levers li {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: var(--ge-ui-space-3);
	align-items: start;
	margin: 0;
	padding: var(--ge-ui-space-3) 14px;
	border-bottom: 1px solid var(--ge-ui-border);
}

.ge-ui.ge-ui--noir .ge-levers li:last-child { border-bottom: 0; }
.ge-ui.ge-ui--noir .ge-levers label { display: flex; align-items: flex-start; gap: var(--ge-ui-space-3); }
.ge-ui.ge-ui--noir .ge-inline-form { display: flex; flex-wrap: wrap; gap: 6px; margin-top: var(--ge-ui-space-2); }
.ge-ui.ge-ui--noir .ge-inline-form input[type="text"] { width: 100%; max-width: 260px; }
.ge-ui.ge-ui--noir .ge-add-support p { margin: 0 0 var(--ge-ui-space-3); }
.ge-ui.ge-ui--noir .ge-add-support label { display: block; margin: 0 0 var(--ge-ui-space-1); font-weight: 600; }
.ge-ui.ge-ui--noir .ge-add-support :is(input[type="text"], select) { width: 100%; max-width: 420px; }
.ge-ui.ge-ui--noir .ge-figures input[type="text"] { width: 100%; min-width: 90px; max-width: 160px; }
.ge-ui.ge-ui--noir .ge-file fieldset { margin: 0; padding: 0; border: 0; }
.ge-ui.ge-ui--noir .ge-plain { margin: 0; padding: 0; list-style: none; }
.ge-ui.ge-ui--noir .ge-report { max-width: 760px; }
.ge-ui.ge-ui--noir .ge-report__kicker { letter-spacing: 0.12em; text-transform: uppercase; }

@media (max-width: 860px) {
	.ge-ui.ge-ui--noir .ge-camp { grid-template-columns: minmax(0, 1fr); }
	.ge-ui.ge-ui--noir .ge-goal { grid-template-columns: minmax(0, 1fr); }
	.ge-ui.ge-ui--noir .ge-clist { max-height: 260px; }
}

/* Catalogue « Trackings possibles » (1.8.1) : blocs dépliables, règles de nommage */
.ge-ui.ge-ui--noir .ge-cat-nav { margin: 0 0 var(--ge-ui-space-4); }

.ge-ui.ge-ui--noir .ge-cat {
	margin: 0 0 var(--ge-ui-space-4);
	border: 1px solid var(--ge-ui-border);
	border-radius: var(--ge-ui-radius);
	background: var(--ge-ui-surface);
}

.ge-ui.ge-ui--noir .ge-cat details { border-bottom: 1px solid var(--ge-ui-border); }
.ge-ui.ge-ui--noir .ge-cat details:last-child { border-bottom: 0; }

.ge-ui.ge-ui--noir .ge-cat summary {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--ge-ui-space-3);
	min-height: var(--ge-ui-control-height);
	padding: var(--ge-ui-space-3) 14px;
	cursor: pointer;
}

.ge-ui.ge-ui--noir .ge-cat__name { font-weight: 600; }
.ge-ui.ge-ui--noir .ge-cat details[open] > summary { border-bottom: 1px solid var(--ge-ui-border); color: var(--ge-ui-brand-strong); }
.ge-ui.ge-ui--noir .ge-cat__body { max-width: 80ch; padding: var(--ge-ui-space-3) 14px var(--ge-ui-space-4); }
.ge-ui.ge-ui--noir .ge-cat__body p { margin: var(--ge-ui-space-2) 0; }
.ge-ui.ge-ui--noir .ge-cat__body dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: var(--ge-ui-space-1) var(--ge-ui-space-4); margin: var(--ge-ui-space-3) 0; font-size: var(--ge-ui-text-sm); }
.ge-ui.ge-ui--noir .ge-cat__body dt { color: var(--ge-ui-text); font-weight: 600; }
.ge-ui.ge-ui--noir .ge-cat__body dd { margin: 0; color: var(--ge-ui-text-muted); overflow-wrap: anywhere; }
.ge-ui.ge-ui--noir .ge-rules { max-width: 80ch; margin: 0 0 var(--ge-ui-space-5); padding-left: var(--ge-ui-space-5); }
.ge-ui.ge-ui--noir .ge-rules li { margin: 0 0 var(--ge-ui-space-3); }
.ge-ui.ge-ui--noir .ge-rules p { margin: var(--ge-ui-space-1) 0 0; color: var(--ge-ui-text-muted); }

@media (max-width: 640px) {
	.ge-ui.ge-ui--noir .ge-cat__body dl { grid-template-columns: minmax(0, 1fr); }
}

/* ── 7. Petits écrans (la maquette bascule à 860 et 640 px) ──────────────────────────────────────────────────── */
@media (max-width: 860px) {
	.ge-ui.ge-ui--noir { padding: var(--ge-ui-space-3) var(--ge-ui-space-4) var(--ge-ui-space-5); }
}

@media (max-width: 640px) {
	.ge-ui.ge-ui--noir { padding: var(--ge-ui-space-3); font-size: 16px; }
	.ge-ui.ge-ui--noir h1:not(:where(.notice *)) { font-size: 22px; }
	.ge-ui.ge-ui--noir .ge-chips { grid-template-columns: minmax(0, 1fr); }
	.ge-ui.ge-ui--noir .ge-brand { width: 126px; height: 30px; }
}

/* ── 8. Accessibilité ────────────────────────────────────────────────────────────────────────────────────────── */
@media (prefers-contrast: more) {
	.ge-ui.ge-ui--noir {
		--ge-ui-border: #7d7766;
		--ge-ui-border-control: #f5f0e3;
		--ge-ui-text-muted: #f5f0e3;
	}
}

@media (forced-colors: active) {
	.ge-ui.ge-ui--noir { background: Canvas; color: CanvasText; }
	.ge-ui.ge-ui--noir .ge-chip,
	.ge-ui.ge-ui--noir :is(input, select, textarea) { border: 1px solid CanvasText; background: Field; color: FieldText; }
	.ge-ui.ge-ui--noir .ge-chip[aria-pressed="true"] { border-width: 2px; }
	.ge-ui.ge-ui--noir a:not(.button, .ge-btn) { color: LinkText; }
	.ge-ui.ge-ui--noir .notice { border: 1px solid CanvasText; background: Canvas; color: CanvasText; }
}

/* Lot 1.14.5 : détail dépliable d'un support en ENCART (variante A), partagé par l'accueil, le rapport et l'équipe.
 * <details> natif, fermé par défaut, sans JavaScript. Fermé : un titre cliquable (« Détail de cette action »). Ouvert : retrait, filet d'accent
 * à gauche, fond légèrement différent. Chaque ligne se lit dans l'ordre : libellé, valeur juste après, mention de comptage en étiquette de TEXTE
 * à contour. Aucune opacité sur du texte : les couleurs sont explicites (ratios mesurés dans doc/LOT-1-14-5.md). */
.ge-ui.ge-ui--noir .ge-detail { margin: 0.25rem 0 0 0.5rem; font-size: 0.875rem; font-weight: 400; font-style: normal; overflow-wrap: anywhere; }
.ge-ui.ge-ui--noir .ge-detail__summary { cursor: pointer; padding: 0.7rem 0; color: var(--ge-ui-brand-strong); font-weight: 600; }
.ge-ui.ge-ui--noir .ge-detail__summary:hover { text-decoration: underline; text-underline-offset: 0.15em; }
.ge-ui.ge-ui--noir .ge-detail__summary:focus-visible { outline: 2px solid var(--ge-ui-brand-strong); outline-offset: 2px; }
.ge-ui.ge-ui--noir .ge-detail[open] { padding: 0 0.75rem 0.75rem; background: var(--ge-ui-brand-soft); border-left: 3px solid var(--ge-ui-brand); border-radius: 0 4px 4px 0; }
.ge-ui.ge-ui--noir .ge-detail__list { list-style: none; margin: 0; padding: 0; }
.ge-ui.ge-ui--noir .ge-detail__line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.2rem 0.6rem; margin: 0; padding: 0.45rem 0; border-top: 1px solid var(--ge-ui-border); }
.ge-ui.ge-ui--noir .ge-detail__label { min-width: 0; color: var(--ge-ui-text); }
.ge-ui.ge-ui--noir .ge-detail__value { color: var(--ge-ui-text); font-weight: 700; font-variant-numeric: tabular-nums; }
.ge-ui.ge-ui--noir .ge-detail__tag { display: inline-block; max-width: 100%; padding: 0.05rem 0.45rem; border: 1px solid var(--ge-ui-border-control); border-radius: 3px; color: var(--ge-ui-text-muted); font-size: 0.8125rem; line-height: 1.4; }
.ge-ui.ge-ui--noir .ge-detail__reason { color: var(--ge-ui-text-muted); font-style: italic; }
.ge-ui.ge-ui--noir .ge-detail__line.is-hidden .ge-detail__label { color: var(--ge-ui-text-muted); }
.ge-ui.ge-ui--noir .ge-detail__note { margin: 0.5rem 0 0; color: var(--ge-ui-text-muted); font-size: 0.8125rem; }
