/* ===== Filtre Projets ZOO ===== */
.zpf {
	--zpf-bubble-bg: #f5e400;
	--zpf-bubble-color: #000;
	--zpf-gap: 14px;
}

.zpf-form { display: flex; flex-direction: column; gap: 28px; }

/* Champ unique : bulles (début) + saisie texte */
.zpf-field {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--zpf-gap);
	min-height: 52px;
	padding: 6px 48px 6px 0; /* place à droite pour la croix */
	border-bottom: 1px solid #333;
}

/* Saisie texte intégrée, sans bordure, s'étire pour remplir */
.zpf-text {
	flex: 1 1 220px;
	min-width: 160px;
	background: transparent;
	border: 0;
	color: inherit;
	padding: 10px 2px;
	font: inherit;
}
.zpf-text::placeholder { color: #888; }
.zpf-text:focus { outline: none; }

/* Croix "tout effacer" : visible au survol du champ uniquement */
.zpf-clear {
	position: absolute;
	right: 4px;
	top: 50%;
	transform: translateY(-50%);
	width: 30px;
	height: 30px;
	border: 0;
	background: transparent;
	border-radius: 50%;
	color: inherit;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	pointer-events: none;
	transition: opacity .15s ease, background-color .15s ease;
}
.zpf-field:hover .zpf-clear,
.zpf-field:focus-within .zpf-clear { opacity: .55; pointer-events: auto; }
.zpf-clear:hover { opacity: 1; background: rgba(255,255,255,.12); }
.zpf-clear:focus-visible { opacity: 1; outline: 2px solid var(--zpf-bubble-bg); }
/* rien à effacer -> pas de croix */
.zpf-field.is-empty .zpf-clear { display: none; }

/* Liste des compétences disponibles */
.zpf-available { display: flex; flex-wrap: wrap; gap: var(--zpf-gap); }

/* Toggle grille / liste */
.zpf-views { display: inline-flex; gap: 6px; margin-top: 16px; }
.zpf-view-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 6px;
	border: 0;
	background: transparent;
	color: inherit;
	cursor: pointer;
	opacity: .45;
	transition: opacity .15s ease, color .15s ease;
}
.zpf-view-btn svg { width: 22px; height: 22px; display: block; }
.zpf-view-btn i { font-size: 22px; line-height: 1; display: block; }
.zpf-view-btn:hover { opacity: .8; }
.zpf-view-btn.is-active { opacity: 1; }
.zpf-view-btn:focus-visible { outline: 2px solid var(--zpf-bubble-bg); outline-offset: 2px; }

/* Bulle (commune) */
.zpf-bubble {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--zpf-bubble-bg);
	color: var(--zpf-bubble-color);
	border: 0;
	border-radius: 999px;
	padding: 12px 26px;
	font: inherit;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	white-space: nowrap;
	transition: transform .15s ease, opacity .15s ease;
	will-change: transform;
}
.zpf-bubble:hover { transform: translateY(-2px); }
.zpf-bubble:active { transform: scale(.96); }

/* Option déjà sélectionnée -> masquée de la liste du bas */
.zpf-option.is-selected { display: none; }

/* Chip dans la zone de recherche : croix */
.zpf-chip .zpf-x { font-size: 1.2em; line-height: 0; margin-left: 2px; opacity: .7; }
.zpf-chip:hover .zpf-x { opacity: 1; }

/* Bulle volante (clone animé) */
.zpf-flyer {
	position: fixed;
	z-index: 9999;
	margin: 0;
	pointer-events: none;
	transition: transform .42s cubic-bezier(.22,.61,.36,1), opacity .42s ease;
}

/* Apparition/retrait */
@keyframes zpf-pop { from { transform: scale(.6); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.zpf-chip.zpf-enter { animation: zpf-pop .2s ease; }

.zpf.is-loading .zpf-form { opacity: .6; pointer-events: none; }
