/* ─── Variables (thème TwentyTwentyFive / bioetlocal) ───────────────────── */
.ec-wrapper {
	--ec-primary:    var(--wp--preset--color--accent-3, #503AA8);
	--ec-primary-dk: color-mix(in srgb, var(--wp--preset--color--accent-3, #503AA8) 80%, black);

	--ec-bg:         var(--wp--preset--color--base, #ffffff);
	--ec-surface:    var(--wp--preset--color--accent-5, #FBFAF3);
	--ec-text:       var(--wp--preset--color--contrast, #111111);
	--ec-muted:      var(--wp--preset--color--accent-4, #686868);
	--ec-border:     color-mix(in srgb, var(--wp--preset--color--contrast, #111111) 12%, transparent);

	--ec-radius:     6px;
	--ec-shadow:     0 1px 4px rgba(0,0,0,.06);

	--ec-font:       var(--wp--preset--font-family--manrope, system-ui, sans-serif);
	--ec-space:      var(--wp--style--block-gap, 1rem);

	max-width: 960px;
	margin: 0 auto;
	font-family: var(--ec-font);
	color: var(--ec-text);
}

/* ─── Header ────────────────────────────────────────────────────────────── */
.ec-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	flex-wrap: wrap;
	gap: var(--ec-space);
	margin-bottom: calc(var(--ec-space) * 2);
	padding-bottom: calc(var(--ec-space) * 1.5);
	border-bottom: 1px solid var(--ec-border);
}

.ec-title {
	margin: 0 0 4px;
	font-size: var(--wp--preset--font-size--x-large, 1.5rem);
	font-weight: 700;
}

.ec-subtitle {
	margin: 0;
	color: var(--ec-muted);
	font-size: .875rem;
}

/* ─── Alerts ────────────────────────────────────────────────────────────── */
.ec-alert {
	padding: .75rem 1rem;
	border-radius: var(--ec-radius);
	margin-bottom: calc(var(--ec-space) * 1.5);
	font-size: .875rem;
	font-weight: 500;
}

.ec-alert--success { background: #ecf9ef; color: #1a5c27; border: 1px solid #b3debb; }
.ec-alert--error   { background: #fdf1f1; color: #8b1a1a; border: 1px solid #f1b8b8; }
.ec-alert--info    { background: #eef4ff; color: #1a3a6b; border: 1px solid #b3c8f1; }

/* ─── Buttons ───────────────────────────────────────────────────────────── */
.ec-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: .5rem 1rem;
	border-radius: var(--ec-radius);
	border: none;
	cursor: pointer;
	font-size: .875rem;
	font-weight: 500;
	font-family: var(--ec-font);
	text-decoration: none;
	transition: background .15s, color .15s, border-color .15s;
	line-height: 1;
}

.ec-btn--primary             { background: var(--ec-primary); color: #fff; }
.ec-btn--primary:hover       { background: var(--ec-primary-dk); color: #fff; }

.ec-btn--outline             { background: transparent; border: 1px solid var(--ec-border); color: var(--ec-text); }
.ec-btn--outline:hover       { border-color: var(--ec-muted); }

.ec-btn--danger              { background: transparent; border: 1px solid rgba(200,0,0,.25); color: #9b2020; }
.ec-btn--danger:hover        { background: rgba(200,0,0,.05); }

.ec-btn--sm { padding: 5px 10px; font-size: .8rem; }

/* ─── Empty state ───────────────────────────────────────────────────────── */
.ec-empty {
	text-align: center;
	padding: calc(var(--ec-space) * 3);
	color: var(--ec-muted);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--ec-space);
}

/* ─── Tableau des contributions ─────────────────────────────────────────── */
.ec-table-wrapper {
	overflow-x: auto;
	border: 1px solid var(--ec-border);
	border-radius: var(--ec-radius);
	box-shadow: var(--ec-shadow);
}

.ec-table {
	width: 100%;
	border-collapse: collapse;
	font-size: .875rem;
	background: var(--ec-bg);
}

.ec-table thead {
	background: var(--ec-surface);
}

.ec-table th {
	padding: .65rem 1rem;
	text-align: left;
	font-size: .75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--ec-muted);
	border-bottom: 1px solid var(--ec-border);
	white-space: nowrap;
}

.ec-table td {
	padding: .75rem 1rem;
	border-bottom: 1px solid var(--ec-border);
	vertical-align: middle;
}

.ec-table tbody tr:last-child td {
	border-bottom: none;
}

.ec-table tbody tr:hover td {
	background: var(--ec-surface);
}

/* Colonne miniature */
.ec-table-thumb {
	width: 64px;
	padding-right: 0;
}

.ec-table-thumb img,
.ec-table-thumb-placeholder {
	width: 56px;
	height: 40px;
	object-fit: cover;
	border-radius: calc(var(--ec-radius) - 2px);
	display: block;
}

.ec-table-thumb-placeholder {
	background: var(--ec-surface);
	border: 1px dashed var(--ec-border);
}

/* Colonne titre */
.ec-table-title {
	font-weight: 600;
	color: var(--ec-text);
}

/* Colonne dates */
.ec-table-date {
	color: var(--ec-primary);
	font-size: .8rem;
	white-space: nowrap;
	display: flex;
	align-items: center;
	gap: 5px;
}

/* Colonne actions */
.ec-table-actions {
	white-space: nowrap;
}

.ec-table-actions .ec-btn + .ec-btn {
	margin-left: 4px;
}

/* ─── Badges ────────────────────────────────────────────────────────────── */
.ec-badge {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 50px;
	font-size: .72rem;
	font-weight: 600;
	white-space: nowrap;
}

.ec-badge--pending { background: #fff3cd; color: #7a5c00; }
.ec-badge--publish { background: #ecf9ef; color: #1a5c27; }
.ec-badge--draft   { background: #f0f0f0; color: #555; }

/* ─── Form ──────────────────────────────────────────────────────────────── */
.ec-form {
	display: flex;
	flex-direction: column;
	gap: var(--ec-space);
}

.ec-field {
	display: flex;
	flex-direction: column;
	gap: .4rem;
}

.ec-field label,
.ec-field > label {
	font-weight: 600;
	font-size: .875rem;
}

.ec-required { color: var(--ec-primary); }

.ec-form input[type="text"],
.ec-form input[type="date"],
.ec-form input[type="time"],
.ec-form textarea {
	padding: .55rem .75rem;
	border: 1px solid var(--ec-border);
	border-radius: var(--ec-radius);
	font-size: .875rem;
	font-family: var(--ec-font);
	color: var(--ec-text);
	background: var(--ec-bg);
	width: 100%;
	box-sizing: border-box;
}

.ec-form input:focus,
.ec-form textarea:focus {
	outline: none;
	border-color: var(--ec-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--ec-primary) 15%, transparent);
}

/* Dates repeater */
.ec-date-row {
	display: flex;
	align-items: flex-end;
	gap: .75rem;
	padding: .75rem;
	background: var(--ec-surface);
	border: 1px solid var(--ec-border);
	border-radius: var(--ec-radius);
}

.ec-date-row-fields {
	display: flex;
	gap: .75rem;
	flex: 1;
	flex-wrap: wrap;
}

.ec-date-col {
	display: flex;
	flex-direction: column;
	gap: .25rem;
	flex: 1;
	min-width: 130px;
}

.ec-date-col label { font-size: .8rem; font-weight: 600; }

.ec-date-remove {
	background: none;
	border: none;
	cursor: pointer;
	color: var(--ec-muted);
	padding: 4px;
	border-radius: 4px;
	line-height: 0;
	transition: color .15s;
}
.ec-date-remove:hover { color: #9b2020; }

/* Géo */
.ec-geo-search {
	display: flex;
	gap: .5rem;
}

.ec-geo-search input {
	flex: 1;
	padding: .55rem .75rem;
	border: 1px solid var(--ec-border);
	border-radius: var(--ec-radius);
	font-size: .875rem;
	font-family: var(--ec-font);
	color: var(--ec-text);
	background: var(--ec-bg);
}
.ec-geo-search input:focus {
	outline: none;
	border-color: var(--ec-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--ec-primary) 15%, transparent);
}

.ec-map-picker {
	width: 100%;
	height: 360px;
	border: 1px solid var(--ec-border);
	border-radius: var(--ec-radius);
	overflow: hidden;
	cursor: crosshair;
}

/* Barre d'état adresse */
.ec-geo-address {
	min-height: 1.6rem;
	display: flex;
	align-items: center;
	gap: .4rem;
	padding: .4rem .6rem;
	background: var(--ec-surface);
	border: 1px solid var(--ec-border);
	border-radius: var(--ec-radius);
	font-size: .8rem;
}

.ec-geo-address:empty {
	display: none;
}

.ec-geo-address span {
	color: var(--ec-primary);
	font-weight: 500;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.ec-geo-hint {
	font-size: .8rem;
	color: var(--ec-muted);
	margin: 0;
}

.ec-geo-notice {
	font-size: .8rem;
	padding: .4rem .7rem;
	border-radius: var(--ec-radius);
	border: 1px solid transparent;
}

.ec-geo-notice--error {
	background: #fdf1f1;
	color: #8b1a1a;
	border-color: #f1b8b8;
}

/* File input */
.ec-file-input {
	display: flex;
	align-items: center;
	gap: .75rem;
}

.ec-file-input input[type="file"] { display: none; }

.ec-file-label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: .5rem 1rem;
	background: var(--ec-surface);
	border: 1px solid var(--ec-border);
	border-radius: var(--ec-radius);
	font-size: .875rem;
	font-weight: 500;
	cursor: pointer;
	transition: border-color .15s;
}
.ec-file-label:hover { border-color: var(--ec-primary); }

.ec-file-name { font-size: .8rem; color: var(--ec-muted); }

.ec-thumb-preview img {
	max-width: 160px;
	border-radius: var(--ec-radius);
	border: 1px solid var(--ec-border);
}

.ec-thumb-hint { font-size: .8rem; color: var(--ec-muted); margin: .3rem 0 0; }

/* Checkboxes */
.ec-checkboxes {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}

.ec-checkbox {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 5px 12px;
	border: 1px solid var(--ec-border);
	border-radius: 50px;
	font-size: .875rem;
	cursor: pointer;
	transition: border-color .15s;
}
.ec-checkbox:hover { border-color: var(--ec-primary); }
.ec-checkbox input { accent-color: var(--ec-primary); }

/* Login gate */
.ec-login-gate {
	padding: 2rem;
	text-align: center;
	background: var(--ec-surface);
	border: 1px solid var(--ec-border);
	border-radius: var(--ec-radius);
}

/* Form actions */
.ec-form-actions {
	display: flex;
	gap: .75rem;
	padding-top: .5rem;
}

/* ─── Compte contributeur ───────────────────────────────────────────────── */
.ec-form-wrap {
	max-width: 640px;
}

.ec-section-title {
	margin: 0 0 calc(var(--ec-space) * 1.5);
	font-size: var(--wp--preset--font-size--large, 1.25rem);
	font-weight: 700;
}

.ec-form-row {
	display: flex;
	gap: var(--ec-space);
}

.ec-form-row--half > .ec-field {
	flex: 1;
	min-width: 0;
}

.ec-label {
	font-weight: 600;
	font-size: .875rem;
}

.ec-input {
	padding: .55rem .75rem;
	border: 1px solid var(--ec-border);
	border-radius: var(--ec-radius);
	font-size: .875rem;
	font-family: var(--ec-font);
	color: var(--ec-text);
	background: var(--ec-bg);
	width: 100%;
	box-sizing: border-box;
}

.ec-input:focus {
	outline: none;
	border-color: var(--ec-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--ec-primary) 15%, transparent);
}

.ec-field-hint {
	font-size: .8rem;
	color: var(--ec-muted);
	margin: 0;
}

.ec-fieldset {
	border: 1px solid var(--ec-border);
	border-radius: var(--ec-radius);
	padding: calc(var(--ec-space) * 1.2);
	display: flex;
	flex-direction: column;
	gap: var(--ec-space);
}

.ec-fieldset-legend {
	font-size: .75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--ec-muted);
	padding: 0 .4rem;
}

.ec-form-alt-link {
	margin-top: var(--ec-space);
	font-size: .875rem;
	color: var(--ec-muted);
}

.ec-form-alt-link a {
	color: var(--ec-primary);
	font-weight: 500;
}

/* ─── Responsive ────────────────────────────────────────────────────────── */
@media (max-width: 640px) {
	.ec-header        { flex-direction: column; }
	.ec-date-row      { flex-direction: column; align-items: stretch; }
	.ec-date-row-fields { flex-direction: column; }
	.ec-table th:nth-child(1),
	.ec-table td:nth-child(1) { display: none; }
	.ec-table-actions { white-space: normal; }
	.ec-table-actions .ec-btn + .ec-btn { margin-left: 0; margin-top: 4px; }
	.ec-form-row { flex-direction: column; }
}
