.ntm-map-hero {
	padding: 48px 0 32px;
	border-bottom: 1px solid var(--ntm-line);
}

.ntm-map-hero h1 {
	max-width: 640px;
	margin-bottom: 12px;
	font-family: Anton, Impact, Oswald, sans-serif;
	font-size: clamp(32px, 5.2vw, 52px);
	line-height: 0.98;
	font-weight: 900;
	text-transform: uppercase;
	color: var(--ntm-black);
}

.ntm-map-hero .ntm-lead {
	max-width: 560px;
	margin: 0;
	color: var(--ntm-grey);
	font-size: 16px;
	line-height: 1.5;
}

.ntm-map-canvas {
	width: 100%;
	height: 100%;
	min-height: 420px;
	border-radius: 0;
	overflow: hidden;
	border: 1px solid var(--ntm-black);
	background: var(--ntm-bg);
}

/* Mise en page : barre latérale de filtres + carte */

.oasis-map-layout {
	display: flex;
	align-items: flex-start;
	gap: 20px;
	margin: 32px 0 48px;
}

.oasis-map-canvas-wrap {
	flex: 1;
	min-width: 0;
	height: 70vh;
	min-height: 420px;
}

.oasis-map-recenter-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	margin-top: 6px;
	padding: 0;
	border: 2px solid var(--ntm-black);
	border-radius: 0;
	background: var(--ntm-white);
	color: var(--ntm-black);
	font-size: 14px;
	cursor: pointer;
}

.oasis-map-recenter-btn:hover {
	background: var(--ntm-pink);
	color: var(--ntm-white);
}

.oasis-map-sidebar {
	flex: 0 0 260px;
	width: 260px;
}

.oasis-map-sidebar__toggle {
	display: none;
}

.oasis-map-sidebar__content {
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding: 16px;
	border: 1px solid var(--ntm-line);
	border-radius: 0;
	background: var(--ntm-white);
	max-height: 70vh;
	overflow-y: auto;
}

.oasis-map-search {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--ntm-line);
	border-radius: 0;
	font-size: 14px;
	font-family: inherit;
}

.oasis-map-filter-group__title {
	margin: 0 0 8px;
	font-family: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	color: var(--ntm-grey);
}

/* Petite légende expliquant le pointillé des marqueurs — sous le groupe
   Quartier (demande de Mia le 21/08) : le seul indice avant ça était un
   title="Position approximative" au survol, invisible sur tablette/mobile. */
.oasis-map-legend-approx {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 12px 0 0;
	padding-top: 12px;
	border-top: 1px solid var(--ntm-line);
	font-size: 12px;
	color: var(--ntm-grey);
}

.oasis-map-legend-approx__dot {
	flex: 0 0 auto;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	border: 2px dashed var(--ntm-black);
	background: var(--ntm-white);
}

.oasis-map-filter-check {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 4px 0;
	font-size: 13px;
	color: var(--ntm-black);
	cursor: pointer;
}

.oasis-map-filter-check--all {
	font-weight: 700;
	padding-bottom: 8px;
	margin-bottom: 4px;
	border-bottom: 1px solid var(--ntm-line);
}

.oasis-map-filter-check input[type="checkbox"] {
	flex: 0 0 auto;
	width: 15px !important;
	height: 15px !important;
	min-width: 15px;
	margin: 0;
	-webkit-appearance: checkbox !important;
	appearance: checkbox !important;
	accent-color: var(--ntm-pink);
}

/* Un plugin du site dessine un carré noir plein sur toutes les cases à
   cocher via un pseudo-élément, sans refléter l'état coché/décoché : on le
   neutralise ici pour garder la case native, lisible et fidèle à son état. */
.oasis-map-filter-check input[type="checkbox"]::before,
.oasis-map-filter-check input[type="checkbox"]::after {
	content: none !important;
	display: none !important;
}

.oasis-map-filter-dot {
	display: inline-block;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	flex: 0 0 auto;
}

/* Icônes de catégorie (Idée/Signalement/Lieu ressource) — remplacent les
   anciens points colorés du filtre, qui entraient en collision visuelle
   avec les couleurs des thématiques juste au-dessus (même bleu/rose
   réutilisés dans les deux, signalé par Mia le 21/08). En noir franc,
   neutre : la couleur reste réservée à la thématique sur cette carte. */
.oasis-map-filter-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 15px;
	flex: 0 0 auto;
	color: var(--ntm-black);
	font-size: 15px;
}

.oasis-map-filter-theme {
	margin: 0 0 2px;
}

.oasis-map-filter-theme summary {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 4px 0;
	font-size: 13px;
	font-weight: 700;
	color: var(--ntm-black);
	cursor: pointer;
	list-style: none;
}

.oasis-map-filter-theme summary::-webkit-details-marker {
	display: none;
}

.oasis-map-filter-theme summary input[type="checkbox"] {
	flex: 0 0 auto;
	width: 15px !important;
	height: 15px !important;
	min-width: 15px;
	margin: 0;
	-webkit-appearance: checkbox !important;
	appearance: checkbox !important;
	accent-color: var(--ntm-pink);
}

/* Même correctif que les autres cases à cocher de cette page (filtres,
   popup) : neutralise le pseudo-élément carré noir qu'un plugin du site
   dessine sur toutes les cases, sans refléter l'état coché/décoché. */
.oasis-map-filter-theme summary input[type="checkbox"]::before,
.oasis-map-filter-theme summary input[type="checkbox"]::after {
	content: none !important;
	display: none !important;
}

.oasis-map-filter-check--sub {
	padding-left: 18px;
}

@media ( max-width: 900px ) {
	.oasis-map-layout {
		flex-direction: column;
		align-items: stretch;
	}

	.oasis-map-canvas-wrap {
		width: 100%;
	}

	.oasis-map-sidebar {
		width: 100%;
		flex: none;
	}

	.oasis-map-sidebar__toggle {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 10px;
		width: 100%;
		padding: 12px 16px;
		border: 2px solid var(--ntm-black);
		border-radius: 0;
		background: var(--ntm-white);
		box-shadow: 3px 3px 0 var(--ntm-black);
		color: var(--ntm-black);
		font-family: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
		font-weight: 800;
		text-transform: uppercase;
		font-size: 13px;
		text-align: left;
		cursor: pointer;
		transition: transform 150ms ease, box-shadow 150ms ease, background-color 150ms ease;
	}

	.oasis-map-sidebar__toggle:hover {
		transform: translate(2px, 2px);
		box-shadow: 1px 1px 0 var(--ntm-black);
	}

	.oasis-map-sidebar__toggle-chevron {
		flex: 0 0 auto;
		color: var(--ntm-pink);
		font-size: 16px;
		line-height: 1;
		transition: transform 150ms ease;
	}

	.oasis-map-sidebar.is-open .oasis-map-sidebar__toggle {
		background: var(--ntm-bg);
	}

	.oasis-map-sidebar.is-open .oasis-map-sidebar__toggle-chevron {
		transform: rotate(180deg);
	}

	.oasis-map-sidebar__content {
		display: none;
		margin-top: 10px;
		max-height: none;
	}

	.oasis-map-sidebar.is-open .oasis-map-sidebar__content {
		display: flex;
	}

	.oasis-map-canvas-wrap {
		height: 60vh;
		min-height: 320px;
	}
}

@media ( max-width: 600px ) {
	.ntm-map-hero {
		padding: 32px 0 24px;
	}

	.oasis-map-layout {
		margin: 24px 0 32px;
	}

	.oasis-map-canvas-wrap {
		height: 55vh;
		min-height: 300px;
	}

	.ntm-map-canvas {
		border-radius: 0;
	}
}

/* Marqueurs par catégorie */

.oasis-map-marker {
	background: transparent !important;
	border: none !important;
	position: relative !important;
}

/* !important + fallback var(--ntm-white, #fff) le 19/08 : cette carte mini
   (mini-map du formulaire proposition citoyenne, hors page /carte-participative/)
   n'enqueue pas assets/css/ntm-pages.css qui definit --ntm-white -- le var()
   invalide desactivait TOUT le raccourci "border" (donc aussi la couleur),
   et sans !important les regles generiques d'oasis-wpforo-social.css
   (toutes en !important) ecrasaient meme "display:block", rendant les
   points de la carte invisibles (0x0) partout sauf sur /carte-participative/
   elle-meme. Trouve suite a un signalement de Mia ("c'est pas notre carte
   avec les points"). */
.oasis-map-marker__dot {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 22px !important;
	height: 22px !important;
	border-radius: 50% !important;
	border: 2px solid var(--ntm-white, #ffffff) !important;
	box-shadow: 0 1px 4px rgba(16, 16, 16, 0.4) !important;
}

.oasis-map-marker__category-icon {
	color: #ffffff !important;
	font-size: 11px !important;
}

.oasis-map-marker__dot--approx {
	border-style: dashed !important;
	opacity: 0.8 !important;
}

.oasis-map-marker__verified {
	position: absolute !important;
	top: -4px !important;
	right: -4px !important;
	width: 13px !important;
	height: 13px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	border-radius: 50% !important;
	background: #C5D400 !important;
	border: 2px solid var(--ntm-white, #ffffff) !important;
	color: #0D0D0D !important;
	font-size: 8px;
	line-height: 1;
	font-weight: 900;
}

/* Chartreuse #C5D400 (vert de la charte) en fond plutôt qu'en texte : en
   couleur de texte sur fond blanc de popup, ce jaune-vert clair est illisible
   (contraste insuffisant) — repris en badge, comme les autres pastilles
   néo-brutalistes du site (fond vif + texte noir franc). */
.oasis-map-popup__verified {
	display: inline-flex;
	align-items: center;
	padding: 1px 6px;
	background: #C5D400;
	border: 1.5px solid var(--ntm-black, #0D0D0D);
	color: var(--ntm-black, #0D0D0D);
	font-weight: 800;
}

/* Popup */

.leaflet-popup-content-wrapper {
	border-radius: 0;
}

.oasis-map-popup {
	max-width: 220px;
	font-family: inherit;
}

.oasis-map-popup__theme {
	margin: 0 0 4px;
	font-family: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 10px;
	font-weight: 800;
	text-transform: uppercase;
}

.oasis-map-popup__category {
	margin: 0 0 4px;
	font-family: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 10px;
	font-weight: 800;
	text-transform: uppercase;
	color: var(--ntm-grey);
}

.oasis-map-popup__title {
	margin: 0 0 6px;
	font-size: 16px;
	line-height: 1.2;
	color: var(--ntm-black);
}

.oasis-map-popup__author {
	margin: 0 0 8px;
	font-size: 11px;
	color: var(--ntm-grey);
}

.oasis-map-popup__author a {
	color: var(--ntm-grey);
	text-decoration: underline;
}

.oasis-map-popup__gallery {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 4px;
	margin-bottom: 8px;
}

.oasis-map-popup__photo {
	display: block;
	width: 100%;
	height: 70px;
	object-fit: cover;
	border-radius: 0;
	cursor: zoom-in;
}

.oasis-map-lightbox {
	position: fixed;
	inset: 0;
	background: rgba(16, 16, 16, 0.85);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2000;
	padding: 24px;
	cursor: zoom-out;
}

/* Sans ce garde-fou, un selecteur de classe (specificite egale a
   l'attribut [hidden] du navigateur) charge APRES la feuille de style par
   defaut du navigateur l'emporte quand meme par ordre de cascade -- le
   voile sombre plein ecran restait donc visible en permanence sur la page
   carte participative, meme quand l'attribut "hidden" est bien pose en
   HTML et qu'aucun clic n'a ouvert le lightbox. Trouve suite a un
   signalement de Mia le 19/08 ("voile sombre" sur la carte). */
.oasis-map-lightbox[hidden] {
	display: none !important;
}

.oasis-map-lightbox__img {
	max-width: 100%;
	max-height: 100%;
	border-radius: 0;
}

.oasis-map-popup__description {
	margin: 0 0 8px;
	font-size: 13px;
	line-height: 1.4;
	color: var(--ntm-black);
}

.oasis-map-popup__quartier {
	margin: 0 0 8px;
	font-size: 11px;
	color: var(--ntm-grey);
}

.oasis-map-popup__approx {
	font-style: italic;
}

.oasis-map-popup__topic-link {
	margin: 0 0 8px;
}

.oasis-map-popup__topic-link a {
	color: var(--ntm-pink) !important;
	font-weight: 700;
	text-decoration: none !important;
}

.oasis-map-popup__like {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin: 0;
	padding: 6px 10px;
	border: 1px solid var(--ntm-pink);
	border-radius: 0;
	background: var(--ntm-white);
	color: var(--ntm-pink);
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
}

.oasis-map-heart-icon {
	flex: 0 0 auto;
	display: block;
}

.oasis-map-popup__like.is-liked {
	background: var(--ntm-pink);
	color: var(--ntm-white);
}

.oasis-map-popup__like:disabled {
	opacity: 0.6;
	cursor: default;
}

.oasis-map-popup__likers {
	margin: 6px 0 0;
	font-size: 11px;
	line-height: 1.4;
	color: var(--ntm-grey);
}

.oasis-map-popup__likers:empty {
	display: none;
}

.oasis-map-popup__verify-toggle {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-top: 8px;
	padding-top: 8px;
	border-top: 1px dashed var(--ntm-line);
	font-size: 12px;
	font-weight: 700;
	color: var(--ntm-black);
	cursor: pointer;
}

.oasis-map-popup__verify-toggle input[type="checkbox"] {
	flex: 0 0 auto;
	width: 14px !important;
	height: 14px !important;
	min-width: 14px;
	margin: 0;
	padding: 0 !important;
	border: none !important;
	border-radius: 0 !important;
	background: none !important;
	position: static !important;
	-webkit-appearance: checkbox !important;
	appearance: checkbox !important;
	accent-color: #C5D400;
}

/* Même règle globale du thème que celle neutralisée plus haut pour
   .oasis-map-filter-check (carré noir plein via pseudo-élément) — touche
   aussi cette case "Vérifié" de la popup, repéré par Mia le 20/08. */
.oasis-map-popup__verify-toggle input[type="checkbox"]::before,
.oasis-map-popup__verify-toggle input[type="checkbox"]::after {
	content: none !important;
	display: none !important;
}

.oasis-map-popup__own-actions {
	display: flex;
	gap: 8px;
	margin-top: 8px;
	padding-top: 8px;
	border-top: 1px dashed var(--ntm-line);
}

.oasis-map-popup__edit-btn,
.oasis-map-popup__delete-btn {
	padding: 4px 10px;
	border: 1px solid var(--ntm-line);
	border-radius: 0;
	background: var(--ntm-white);
	font-size: 11px;
	font-weight: 700;
	cursor: pointer;
}

.oasis-map-popup__delete-btn {
	border-color: #e74c3c;
	color: #e74c3c;
}

.oasis-map-popup__edit-form {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.oasis-map-popup__edit-form[hidden] {
	display: none;
}

.oasis-map-popup__edit-form label {
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-size: 11px;
	font-weight: 700;
	color: var(--ntm-grey);
}

.oasis-map-popup__edit-form input,
.oasis-map-popup__edit-form select,
.oasis-map-popup__edit-form textarea {
	padding: 6px 8px;
	border: 1px solid var(--ntm-line);
	border-radius: 0;
	font-size: 13px;
	font-family: inherit;
}

.oasis-map-popup__edit-error {
	margin: 0;
	font-size: 11px;
	color: #e74c3c;
}

.oasis-map-popup__edit-actions {
	display: flex;
	gap: 8px;
}

.oasis-map-popup__edit-save,
.oasis-map-popup__edit-cancel {
	padding: 6px 12px;
	border: 1px solid var(--ntm-black);
	border-radius: 0;
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
}

.oasis-map-popup__edit-save {
	background: var(--ntm-black);
	color: var(--ntm-white);
}

.oasis-map-popup__edit-cancel {
	background: var(--ntm-white);
	color: var(--ntm-black);
}

/* Clusters — colorés selon la thématique dominante du groupe (iconCreateFunction
   dédiée dans map.js), remplace le rendu neutre par défaut de leaflet.markercluster. */

.oasis-map-cluster-wrap {
	background: transparent !important;
	border: none !important;
}

.oasis-map-cluster {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 2px solid var(--ntm-white, #ffffff);
	box-shadow: 0 1px 4px rgba(16, 16, 16, 0.4);
}

.oasis-map-cluster span {
	color: var(--ntm-white, #ffffff);
	font-family: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-weight: 800;
	font-size: 13px;
}

.oasis-map-cluster--sm {
	width: 34px;
	height: 34px;
}

.oasis-map-cluster--lg {
	width: 46px;
	height: 46px;
}

.oasis-map-cluster--lg span {
	font-size: 14px;
}

/* Barre d'action (ajout de point) */

.oasis-map-toolbar {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	margin-top: 24px;
}

.oasis-map-add-btn {
	padding: 10px 18px;
	border: 2px solid var(--ntm-black);
	border-radius: 0;
	background: var(--ntm-pink);
	box-shadow: 3px 3px 0 var(--ntm-black);
	color: var(--ntm-black);
	font-family: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-weight: 800;
	text-transform: uppercase;
	font-size: 13px;
	cursor: pointer;
	transition: transform 150ms ease, box-shadow 150ms ease, background-color 150ms ease;
}

.oasis-map-add-btn:hover {
	background: var(--ntm-yellow);
	transform: translate(2px, 2px);
	box-shadow: 1px 1px 0 var(--ntm-black);
}

.oasis-map-add-btn.is-active {
	background: var(--ntm-black);
	color: var(--ntm-pink);
	box-shadow: 3px 3px 0 var(--ntm-pink);
}

.oasis-map-add-approx-btn {
	padding: 0;
	border: none;
	background: none;
	color: var(--ntm-grey);
	font-size: 13px;
	text-decoration: none;
	cursor: pointer;
}

.oasis-map-add-approx-btn:hover {
	color: var(--ntm-black);
}

.oasis-map-address-search {
	position: relative;
	width: 100%;
	max-width: 360px;
}

.oasis-map-address-search input {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--ntm-line);
	border-radius: 0;
	font-size: 14px;
	font-family: inherit;
}

.oasis-map-address-results {
	position: absolute;
	top: calc(100% + 4px);
	left: 0;
	right: 0;
	z-index: 10;
	margin: 0;
	padding: 4px;
	list-style: none;
	background: var(--ntm-white);
	border: 1px solid var(--ntm-black);
	border-radius: 0;
	max-height: 220px;
	overflow-y: auto;
}

.oasis-map-address-results li {
	padding: 8px 10px;
	font-size: 13px;
	cursor: pointer;
	border-radius: 0;
}

.oasis-map-address-results li:hover {
	background: var(--ntm-bg);
}

.oasis-map-address-results__empty {
	cursor: default !important;
	color: var(--ntm-grey);
}

.oasis-map-address-results__empty:hover {
	background: transparent !important;
}

.oasis-map-add-hint {
	margin: 0;
	font-size: 13px;
	color: var(--ntm-grey);
}

.oasis-map-login-hint {
	margin: 24px 0 0;
	font-size: 14px;
	color: var(--ntm-grey);
}

.oasis-map-login-hint a {
	color: var(--ntm-pink) !important;
	text-decoration: underline !important;
}

/* Panneau formulaire d'ajout */

/* Volet non-bloquant : ancré, ne couvre pas la carte pour qu'on puisse
   toujours cliquer dessus et corriger l'emplacement pendant que le
   formulaire est ouvert. */
.oasis-map-form-panel {
	position: fixed;
	right: 16px;
	bottom: 16px;
	left: 16px;
	z-index: 1000;
	pointer-events: none;
	display: flex;
	justify-content: flex-end;
}

/* Meme bug/meme fix que .oasis-map-lightbox[hidden] ci-dessus : sans ce
   garde-fou, le panneau "Ajouter un point" restait ouvert en permanence
   des le chargement de la page (signale par Mia le 19/08, capture a
   l'appui -- "le formulaire qui ne veut pas se fermer"). */
.oasis-map-form-panel[hidden] {
	display: none !important;
}

.oasis-map-form-panel__inner {
	position: relative;
	width: 100%;
	max-width: 380px;
	max-height: calc(100vh - 32px);
	overflow-y: auto;
	background: var(--ntm-white);
	border: 2px solid var(--ntm-black);
	border-radius: 0;
	padding: 24px 20px;
	box-shadow: 0 8px 24px rgba(16, 16, 16, 0.25);
	pointer-events: auto;
}

@media ( max-width: 640px ) {
	.oasis-map-form-panel {
		right: 12px;
		left: 12px;
		top: 90px;
		bottom: 90px;
		justify-content: center;
		align-items: flex-start;
	}

	.oasis-map-form-panel__inner {
		max-width: none;
		max-height: 100%;
	}

	.oasis-map-form-panel__close {
		top: 10px;
		right: 10px;
		width: 40px;
		height: 40px;
		font-size: 28px;
		background: var(--ntm-bg);
		border-radius: 0;
	}
}

.oasis-map-form-panel__inner h2 {
	margin: 0 0 16px;
	font-family: Anton, Impact, Oswald, sans-serif;
	font-size: 24px;
	text-transform: uppercase;
	color: var(--ntm-black);
}

.oasis-map-form-panel__close {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 32px;
	height: 32px;
	border: none;
	background: transparent;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	color: var(--ntm-black);
}

[data-oasis-map-form] {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

[data-oasis-map-form] label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 13px;
	font-weight: 700;
	color: var(--ntm-black);
}

[data-oasis-map-form] input[type="text"],
[data-oasis-map-form] select,
[data-oasis-map-form] textarea,
[data-oasis-map-form] input[type="file"] {
	padding: 10px 12px;
	border: 1px solid var(--ntm-line);
	border-radius: 0;
	font-size: 14px;
	font-weight: 400;
	font-family: inherit;
}

.oasis-map-form__location {
	margin: 0 0 16px;
	padding: 8px 10px;
	border-radius: 0;
	background: var(--ntm-bg);
	color: var(--ntm-black);
	font-size: 12px;
	line-height: 1.4;
}

.oasis-map-pending-marker {
	background: transparent;
	border: none;
}

.oasis-map-pending-marker__dot {
	display: block;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--ntm-black);
	border: 3px solid var(--ntm-pink);
	box-shadow: 0 0 0 4px rgba(255, 31, 142, 0.25);
}

.oasis-map-form__error {
	margin: 0;
	padding: 8px 10px;
	border-radius: 0;
	background: rgba(255, 31, 142, 0.12);
	color: var(--ntm-pink);
	font-size: 13px;
}

.oasis-map-form__submit {
	padding: 12px 18px;
	border: 2px solid var(--ntm-black);
	border-radius: 0;
	background: var(--ntm-pink);
	box-shadow: 3px 3px 0 var(--ntm-black);
	color: var(--ntm-black);
	font-family: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-weight: 800;
	text-transform: uppercase;
	font-size: 13px;
	cursor: pointer;
	transition: transform 150ms ease, box-shadow 150ms ease, background-color 150ms ease;
}

.oasis-map-form__submit:hover {
	background: var(--ntm-yellow);
	transform: translate(2px, 2px);
	box-shadow: 1px 1px 0 var(--ntm-black);
}

/* Lien vers la page de modération */

.oasis-map-moderation-link {
	margin: 16px 0 0;
}

.oasis-map-moderation-link a {
	color: var(--ntm-pink) !important;
	font-weight: 700;
	text-decoration: none !important;
}

.oasis-map-back-btn {
	display: inline-block;
	margin-top: 16px;
	padding: 10px 18px;
	border: 2px solid var(--ntm-black);
	border-radius: 0;
	box-shadow: 3px 3px 0 var(--ntm-black);
	background: var(--ntm-white);
	color: var(--ntm-black) !important;
	font-weight: 800;
	font-size: 13px;
	text-decoration: none !important;
	transition: transform 150ms ease, box-shadow 150ms ease, background-color 150ms ease;
}

.oasis-map-back-btn:hover {
	background: var(--ntm-black);
	color: var(--ntm-white) !important;
}

.oasis-map-moderation-photos-badge {
	display: inline-block;
	padding: 3px 8px;
	border-radius: 0;
	background: rgba(255, 122, 0, 0.15);
	color: #b85c00;
	font-size: 11px;
	font-weight: 700;
	white-space: nowrap;
}

/* Page de modération — table */

.oasis-map-moderation-filter-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

/* Flèche indiquant que le tableau (juste en dessous) se fait glisser
   horizontalement — visible uniquement sous 960px, seuil où le tableau
   (min-width 900px, voir plus bas) déborde forcément de son conteneur.
   Même caractère « → » que les autres liens/boutons du site (ex. bouton
   "Je ne connais pas l'emplacement exact →" du petit formulaire "Ajouter un
   point" de cette même carte), demande de Mia. */
.oasis-map-moderation-scroll-arrow {
	display: none;
	color: var(--ntm-pink);
	font-size: 22px;
	font-weight: 800;
	line-height: 1;
	animation: oasis-map-moderation-scroll-nudge 1.2s ease-in-out infinite;
}

@media (max-width: 960px) {
	.oasis-map-moderation-scroll-arrow {
		display: inline-block;
	}
}

@keyframes oasis-map-moderation-scroll-nudge {
	0%, 100% { transform: translateX(0); }
	50% { transform: translateX(6px); }
}

.oasis-map-moderation-table-scroll {
	width: 100%;
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin: 12px 0 48px;
	border: 2px solid var(--ntm-black);
}

.oasis-map-moderation-table {
	width: 100%;
	min-width: 900px;
	margin: 0;
	border-collapse: collapse;
	font-size: 13px;
}

.oasis-map-moderation-table th,
.oasis-map-moderation-table td {
	padding: 10px 8px;
	border-bottom: 1px solid var(--ntm-line);
	text-align: left;
	vertical-align: top;
}

.oasis-map-moderation-table th {
	font-family: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 10px;
	font-weight: 800;
	text-transform: uppercase;
	color: var(--ntm-grey);
}

.oasis-map-moderation-table__content strong {
	display: block;
	margin-bottom: 4px;
	color: var(--ntm-black);
}

.oasis-map-moderation-table__content p {
	margin: 0;
	color: var(--ntm-grey);
	max-width: 320px;
}

.oasis-map-moderation-table__content select,
.oasis-map-moderation-table__content input[type="text"],
.oasis-map-moderation-table__content textarea {
	display: block;
	width: 100%;
	max-width: 320px;
	margin-bottom: 6px;
	padding: 6px 8px;
	border: 1px solid var(--ntm-line);
	border-radius: 0;
	font-size: 13px;
	font-family: inherit;
}

.oasis-map-moderation-table__actions {
	white-space: nowrap;
}

.oasis-map-moderation-table__actions a,
.oasis-map-moderation-table__actions button,
.oasis-map-moderation-table__content button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 122px;
	padding: 6px 10px;
	margin-right: 6px;
	margin-bottom: 3px;
	border: 2px solid var(--ntm-black);
	border-radius: 0;
	background: var(--ntm-white);
	color: var(--ntm-black) !important;
	font-size: 12px;
	font-weight: 700;
	text-decoration: none !important;
	cursor: pointer;
	box-shadow: 1px 1px 0 var(--ntm-black);
	transition: transform 150ms ease, box-shadow 150ms ease;
}

.oasis-map-moderation-table__actions a:hover,
.oasis-map-moderation-table__actions button:hover,
.oasis-map-moderation-table__content button:hover {
	transform: translate(-1px, -1px);
	box-shadow: 2px 2px 0 var(--ntm-black);
}

.oasis-map-moderation-filter {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 24px 0 8px;
	font-size: 13px;
	font-weight: 700;
	color: var(--ntm-black);
	cursor: pointer;
}

.oasis-map-moderation-filter input[type="checkbox"] {
	width: 15px !important;
	height: 15px !important;
	min-width: 15px;
	margin: 0;
	-webkit-appearance: checkbox !important;
	appearance: checkbox !important;
	accent-color: var(--ntm-pink);
}

/* Même correctif que les filtres de la carte : neutralise le pseudo-élément
   carré noir qu'un plugin du site dessine sur toutes les cases à cocher. */
.oasis-map-moderation-filter input[type="checkbox"]::before,
.oasis-map-moderation-filter input[type="checkbox"]::after {
	content: none !important;
	display: none !important;
}

.oasis-map-moderation-load-more {
	display: block;
	margin: 20px auto 0;
	padding: 10px 20px;
	border: 2px solid var(--ntm-black);
	border-radius: 0;
	background: var(--ntm-white);
	font-weight: 800;
	font-size: 13px;
	cursor: pointer;
}

.oasis-map-moderation-table__actions button.is-danger {
	border-color: var(--ntm-pink);
	color: var(--ntm-pink);
	box-shadow: 1px 1px 0 var(--ntm-pink);
}

.oasis-map-moderation-table__actions button.is-danger:hover {
	box-shadow: 2px 2px 0 var(--ntm-pink);
}
