/*
 * Drop Event — zones de saisie communes.
 * Une seule définition pour tous les champs de la plateforme :
 *   .dropevent-dash               espace de gestion (événement, compte, QR code)
 *   .dropevent-login              bloc de connexion
 *   .dropevent-landing .gform_wrapper   formulaires d'inscription (Gravity Forms)
 * Couvre tous les types de champs texte (y compris mot de passe, url, tel, search),
 * listes déroulantes et zones de texte, quel que soit le style du thème.
 *
 * Contrastes : bordure #6b7280 = 4,8:1 sur blanc (WCAG 1.4.11), texte #1f2937 = 14,7:1,
 * erreur #b91c1c = 6,5:1. Hauteur 44 px (WCAG 2.5.5), police 16 px (pas de zoom forcé sur iOS).
 */

:root {
	--dropevent-field-border: #6b7280;
	--dropevent-field-text: #1f2937;
	--dropevent-field-placeholder: #6b7280;
	--dropevent-field-bg: #ffffff;
	--dropevent-field-disabled-bg: #f3f4f6;
	--dropevent-field-error: #b91c1c;
	--dropevent-field-focus: #111827;
	--dropevent-field-radius: .375rem;
	--dropevent-field-height: 2.75rem;
}

/* ---------- Champs texte, listes, zones de texte ---------- */
:is(.dropevent-dash, .dropevent-login, .dropevent-landing .gform_wrapper) :is(
	input:not([type]),
	input[type="text"],
	input[type="email"],
	input[type="password"],
	input[type="url"],
	input[type="tel"],
	input[type="search"],
	input[type="number"],
	input[type="date"],
	input[type="time"],
	input[type="datetime-local"],
	input[type="month"],
	input[type="week"],
	select,
	textarea
) {
	box-sizing: border-box;
	display: block;
	width: 100%;
	max-width: 100%;
	min-height: var(--dropevent-field-height);
	height: auto;
	margin: 0;
	padding: .5rem .75rem;
	border: 1px solid var(--dropevent-field-border);
	border-radius: var(--dropevent-field-radius);
	background: var(--dropevent-field-bg);
	color: var(--dropevent-field-text);
	font-family: var(--dropevent-font, inherit);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: normal;
	text-transform: none;
	box-shadow: none;
	transition: none;
}

:is(.dropevent-dash, .dropevent-login, .dropevent-landing .gform_wrapper) textarea {
	min-height: 7.5rem;
	resize: vertical;
}

:is(.dropevent-dash, .dropevent-login, .dropevent-landing .gform_wrapper) select {
	padding-right: 2.25rem;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%231f2937' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right .75rem center;
	background-size: .75rem;
	cursor: pointer;
}

:is(.dropevent-dash, .dropevent-login, .dropevent-landing .gform_wrapper) ::placeholder {
	color: var(--dropevent-field-placeholder);
	opacity: 1;
}

/* Lecture seule / désactivé : reste lisible (contraste conservé), fond grisé. */
:is(.dropevent-dash, .dropevent-login, .dropevent-landing .gform_wrapper) :is(input, select, textarea):is([readonly], :disabled) {
	background-color: var(--dropevent-field-disabled-bg);
	color: var(--dropevent-field-text);
	cursor: default;
}

/* ---------- Focus : même indicateur partout ---------- */
:is(.dropevent-dash, .dropevent-login, .dropevent-landing .gform_wrapper) :is(input, select, textarea):focus-visible,
:is(.dropevent-dash, .dropevent-login, .dropevent-landing .gform_wrapper) :is(input, select, textarea):focus {
	outline: 3px solid var(--dropevent-field-focus);
	outline-offset: 2px;
	border-color: var(--dropevent-field-focus);
	box-shadow: none;
}

/* ---------- Erreur ---------- */
:is(.dropevent-dash, .dropevent-login, .dropevent-landing .gform_wrapper) :is(input, select, textarea)[aria-invalid="true"],
.dropevent-dash .dropevent-field--error :is(input, select, textarea),
.dropevent-landing .gform_wrapper .gfield_error :is(input, select, textarea) {
	border: 2px solid var(--dropevent-field-error);
}

/* ---------- Cases à cocher et boutons radio ---------- */
:is(.dropevent-dash, .dropevent-login, .dropevent-landing .gform_wrapper) :is(input[type="checkbox"], input[type="radio"]) {
	width: 1.25rem;
	height: 1.25rem;
	min-height: 0;
	margin: .125rem 0 0;
	flex: none;
	accent-color: var(--dropevent-accent, var(--dropevent-brand, #1d4ed8));
	cursor: pointer;
}

/* ---------- Fichier et couleur (espace de gestion) ---------- */
.dropevent-dash input[type="file"] {
	display: block;
	width: 100%;
	max-width: 100%;
	padding: .5rem;
	border: 1px dashed var(--dropevent-field-border);
	border-radius: var(--dropevent-field-radius);
	background: var(--dropevent-field-bg);
	font: inherit;
	font-size: 1rem;
}
.dropevent-dash input[type="file"]::file-selector-button {
	margin-right: .75rem;
	min-height: 2.25rem;
	padding: .25rem .75rem;
	border: 1px solid var(--dropevent-field-border);
	border-radius: var(--dropevent-field-radius);
	background: var(--dropevent-field-disabled-bg);
	color: var(--dropevent-field-text);
	font: inherit;
	cursor: pointer;
}
.dropevent-dash input[type="color"] {
	width: 4rem;
	height: var(--dropevent-field-height);
	padding: .125rem;
	border: 1px solid var(--dropevent-field-border);
	border-radius: var(--dropevent-field-radius);
	background: var(--dropevent-field-bg);
	cursor: pointer;
}

/* ---------- Éditeur de texte (TinyMCE) : même cadre que les champs ---------- */
.dropevent-dash .dropevent-field--editor .wp-editor-wrap {
	border: 1px solid var(--dropevent-field-border);
	border-radius: var(--dropevent-field-radius);
	overflow: hidden;
}
.dropevent-dash .dropevent-field--editor .wp-editor-wrap:focus-within {
	outline: 3px solid var(--dropevent-field-focus);
	outline-offset: 2px;
}
.dropevent-dash .dropevent-field--error .wp-editor-wrap { border: 2px solid var(--dropevent-field-error); }
.dropevent-dash .dropevent-field--editor .wp-editor-area {
	min-height: 0;
	border: 0;
	border-radius: 0;
	outline: 0;
}

/* ---------- Mode contraste élevé ---------- */
@media (forced-colors: active) {
	:is(.dropevent-dash, .dropevent-login, .dropevent-landing .gform_wrapper) :is(input, select, textarea) { border: 1px solid CanvasText; }
	:is(.dropevent-dash, .dropevent-login, .dropevent-landing .gform_wrapper) select { background-image: none; appearance: auto; }
}
