/*
 * Carto Malawi : répartition, feuille de style de includes/repartition.php
 *
 * Chargée après le CSS de Leaflet, uniquement sur les pages qui utilisent
 * [malawi_repartition] ou [malawi_localite_especes], et sur la page d'administration.
 * Couleurs des taxons, épaisseur des traits et hauteur des cartes : fixées par les shortcodes.
 */


/* ==========================================================================
   1. Carte
   ========================================================================== */

/*
 * Largeur fixe de 1040 px, centrée : si la colonne de l'article est plus étroite,
 * la carte déborde à parts égales de chaque côté. Sur un écran plus étroit que
 * 1040 px, elle prend toute la largeur de l'écran moins 16 px de marge de chaque côté.
 * La hauteur (585 px par défaut) se règle avec l'attribut hauteur du shortcode.
 */
.malaw-rep-wrap {
	box-sizing: border-box;
	width: min(1040px, calc(100vw - 32px));
	max-width: none;
	margin: 0 0 1.5em calc(50% - min(520px, 50vw - 16px));
}

/* Aperçu dans l'administration : largeur de la page d'administration. */
.malaw-rep-wrap.malaw-rep-wrap-admin {
	width: auto;
	margin-left: 0;
}

.malaw-rep-map {
	position: relative;
	z-index: 0;
	width: 100%;
	border-radius: var(--aqua-arrondi, 4px);
}

/* Évite que le thème (img { max-width: 100% }) ne déforme les tuiles de la carte. */
.malaw-rep-map img,
.malaw-rep-map .leaflet-tile,
.malaw-rep-ovmap img,
.malaw-rep-ovmap .leaflet-tile {
	max-width: none !important;
}

.malaw-rep-map .leaflet-popup-content {
	margin: 12px 14px;
	line-height: 1.4;
}


/* ==========================================================================
   2. Fiche au clic, infobulles et noms des extrémités
   ========================================================================== */

.malaw-rep-pop-t {
	margin-top: 4px;
}

.malaw-rep-pop-s {
	margin-top: 4px;
	font-size: .9em;
	opacity: .8;
}

.malaw-rep-pop-n {
	margin-top: 4px;
	font-size: .9em;
	font-style: italic;
}

.malaw-rep-pop-e {
	display: inline-block;
	margin-top: 6px;
	font-size: .9em;
}

.leaflet-tooltip.malaw-rep-tip {
	font-size: 12px;
	padding: 2px 6px;
}

/* Nom affiché à côté d'une extrémité : sans cadre, avec un liseré clair pour rester lisible. */
.leaflet-tooltip.malaw-rep-label {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0 2px;
	font-size: var(--malaw-rep-fs, 13px);
	font-weight: 600;
	line-height: 1.2;
	color: #1f2937;
	white-space: nowrap;
	text-shadow: 0 0 2px #fff, 0 0 2px #fff, 0 0 3px #fff, 0 0 3px #fff;
}

.leaflet-tooltip-right.malaw-rep-label::before {
	display: none;
}

/* Étiquette masquée parce qu'elle en recouvre une autre (elle réapparaît en zoomant). */
.leaflet-tooltip.malaw-rep-label.malaw-rep-hide {
	opacity: 0 !important;
}


/* ==========================================================================
   3. Légende des taxons (menu des couches) et des statuts (sous la carte)
   ========================================================================== */

.malaw-rep-lg {
	display: inline-block;
	width: 18px;
	height: 6px;
	border-radius: 3px;
	vertical-align: middle;
	margin: 0 2px 0 0;
}

.malaw-rep-lgn {
	opacity: .6;
	font-size: .9em;
}

.malaw-rep-keys {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 18px;
	margin: 6px 0 0;
	font-size: .85em;
	opacity: .85;
}

.malaw-rep-key {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

/* Échantillon de trait : plein, tirets (douteux) ou pointillés (introduit). */
.malaw-rep-swatch {
	display: inline-block;
	width: 28px;
	border-top: 4px solid #6b7280;
}

.malaw-rep-sw-doute {
	border-top-style: dashed;
}

.malaw-rep-sw-intro {
	border-top-style: dotted;
}


/* ==========================================================================
   4. Vue d'ensemble (apercu="oui")
   ========================================================================== */

.malaw-rep-ovwrap {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 190px;
	gap: 12px;
	align-items: start;
}

.malaw-rep-ov {
	min-width: 0;
}

.malaw-rep-ovmap {
	position: relative;
	z-index: 0;
	width: 100%;
	border-radius: var(--aqua-arrondi, 4px);
	border: 1px solid rgba(127, 127, 127, .4);
	box-sizing: border-box;
	cursor: pointer;
}

.malaw-rep-ovcap {
	font-size: .8em;
	opacity: .7;
	text-align: center;
	margin-top: 4px;
}


/* ==========================================================================
   5. Liste + carte : [malawi_repartition_liste]
   La variable --malaw-rep-h (hauteur de la carte) est définie par le shortcode.
   ========================================================================== */

.malaw-rep-split {
	display: grid;
	grid-template-columns: minmax(220px, 300px) 1fr;
	gap: 16px;
	align-items: start;
}

.malaw-rep-split .malaw-rep-mapwrap {
	min-width: 0;
}

.malaw-rep-split .malaw-rep-filter {
	display: block;
	width: 100%;
	box-sizing: border-box;
	margin: 0 0 8px;
}

/* Champ de recherche, avec une croix pour l'effacer. */
.malaw-rep-split .malaw-rep-searchwrap {
	position: relative;
	margin: 0 0 8px;
}

.malaw-rep-split .malaw-rep-search {
	display: block;
	width: 100%;
	box-sizing: border-box;
	margin: 0;
	padding-right: 30px;
}

.malaw-rep-split .malaw-rep-search::-webkit-search-cancel-button {
	-webkit-appearance: none;
	appearance: none;
}

.malaw-rep-split .malaw-rep-clear {
	position: absolute;
	top: 50%;
	right: 4px;
	transform: translateY(-50%);
	width: 24px;
	height: 24px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: inherit;
	font-size: 20px;
	line-height: 24px;
	text-align: center;
	cursor: pointer;
	opacity: .6;
}

.malaw-rep-split .malaw-rep-clear:hover,
.malaw-rep-split .malaw-rep-clear:focus {
	opacity: 1;
	background: rgba(127, 127, 127, .2);
	outline: none;
}

.malaw-rep-split .malaw-rep-clear[hidden],
.malaw-rep-split .malaw-rep-empty[hidden],
.malaw-rep-split .malaw-rep-side li[hidden] {
	display: none;
}

.malaw-rep-split .malaw-rep-empty {
	margin: 6px 10px;
	font-style: italic;
	opacity: .7;
}

/* Zone défilante de la liste : sa hauteur maximale suit celle de la carte (moins le filtre et la recherche). */
.malaw-rep-split .malaw-rep-items {
	max-height: calc(var(--malaw-rep-h, 585px) - 90px);
	overflow: auto;
	padding-right: 4px;
}

.malaw-rep-split .malaw-rep-side ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* Une espèce de la liste : espace haut et bas à 0 (premier chiffre du padding), à augmenter pour aérer. */
.malaw-rep-split .malaw-rep-side li {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 8px;
	margin: 0;
	padding: 0 10px;
	border-radius: var(--aqua-arrondi, 4px);
	line-height: 1.5;
	font-style: italic;
	cursor: pointer;
}

.malaw-rep-split .malaw-rep-side li:hover,
.malaw-rep-split .malaw-rep-side li:focus,
.malaw-rep-split .malaw-rep-side li.is-active {
	background: rgba(127, 127, 127, .2);
	outline: none;
}

.malaw-rep-split .malaw-rep-side li.is-active {
	font-weight: 600;
}

/* Sous-espèce ou variante : en retrait sous son espèce. */
.malaw-rep-split .malaw-rep-side li.malaw-rep-sub {
	padding-left: 28px;
	font-size: .92em;
}

.malaw-rep-split .malaw-rep-dot {
	display: inline-block;
	width: 10px;
	height: 10px;
	margin-right: 8px;
	border-radius: 50%;
	box-shadow: 0 0 0 1px rgba(127, 127, 127, .5);
}

.malaw-rep-split .malaw-rep-go {
	font-style: normal;
	text-decoration: none;
	white-space: nowrap;
}

/* Liste des localités d'une répartition : [malawi_repartition liste="oui"] */
.malaw-rep-split.malaw-rep-loclist .malaw-rep-side li {
	font-style: normal;
}

.malaw-rep-split.malaw-rep-loclist .malaw-rep-items {
	max-height: calc(var(--malaw-rep-h, 585px) - 34px);
}

.malaw-rep-split.malaw-rep-loclist .malaw-rep-dot + .malaw-rep-dot {
	margin-left: -4px;
}

.malaw-rep-split .malaw-rep-st {
	font-size: .85em;
	opacity: .7;
}

.malaw-rep-split .malaw-rep-side-t {
	margin: 0 0 6px;
	padding: 0 10px;
	font-size: var(--aqua-texte-petit, 14px);
	opacity: .75;
}


/* ==========================================================================
   6. Liste des espèces d'une localité : [malawi_localite_especes]
   ========================================================================== */

.malaw-rep-list ul {
	margin-top: 0;
}

.malaw-rep-list .malaw-rep-st {
	font-size: .85em;
	opacity: .7;
}


/* ==========================================================================
   7. Administration
   ========================================================================== */

.malaw-rep-admin .malaw-rep-err {
	color: var(--aqua-alerte, #b32d2e);
}

.malaw-rep-pick {
	display: flex;
	flex-direction: column;
	gap: 6px;
}


/* ==========================================================================
   8. Petits écrans
   ========================================================================== */

@media (max-width: 720px) {
	.malaw-rep-ovwrap {
		grid-template-columns: minmax(0, 1fr) 110px;
		gap: 8px;
	}

	/* Liste + carte : la carte passe au-dessus et reste visible pendant le défilement de la liste. */
	.malaw-rep-split {
		grid-template-columns: 1fr;
		gap: 8px;
	}

	.malaw-rep-split .malaw-rep-mapwrap {
		order: -1;
		position: sticky;
		top: 0;
		z-index: 5;
	}

	.malaw-rep-split .malaw-rep-map {
		height: 50vh !important;
	}

	.malaw-rep-split .malaw-rep-items {
		max-height: none;
		overflow: visible;
	}
}
.malaw-rep-map path.leaflet-interactive:focus{outline:none}
