/*
 * Calendrier – Amstrad.eu
 * Les couleurs se règlent via les variables ci-dessous (à surcharger dans le thème si besoin).
 */
.amcal-widget,
.amcal-calendar,
.amcal-form-wrap,
.amcal-fields {
	--amcal-accent: #c8102e;      /* rouge « Amstrad » */
	--amcal-live: #1a8f3c;        /* badge « En cours » */
	--amcal-muted: rgba(127, 127, 127, .85);
	--amcal-border: rgba(127, 127, 127, .25);
	--amcal-soft: rgba(127, 127, 127, .08);
	--amcal-radius: 6px;
}

.amcal-icon { width: 1.25em; text-align: center; }

.amcal-badge {
	display: inline-block;
	padding: 1px 7px;
	border-radius: 999px;
	background: var(--amcal-soft);
	border: 1px solid var(--amcal-border);
	font-size: .75em;
	line-height: 1.5;
	white-space: nowrap;
	vertical-align: middle;
}
.amcal-badge--live {
	background: var(--amcal-live);
	border-color: var(--amcal-live);
	color: #fff;
	font-weight: 600;
}

/* Voyant vert clignotant « en cours » */
/* Voyants d'état : vert clignotant = live en cours, rouge = à venir, gris = terminé */
.amcal-dot {
	display: inline-block;
	position: relative;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	flex: 0 0 auto;
}
.amcal-dot--live {
	background: #2ecc40;
	box-shadow: 0 0 6px 1px rgba(46, 204, 64, .8);
	animation: amcal-blink 1.2s ease-in-out infinite;
}
.amcal-dot--soon {
	background: #e5252a;
	box-shadow: 0 0 4px rgba(229, 37, 42, .6);
}
.amcal-dot--past {
	background: rgba(127, 127, 127, .6);
}
@keyframes amcal-blink {
	0%, 100% { opacity: 1; }
	50%      { opacity: .25; box-shadow: none; }
}
@media (prefers-reduced-motion: reduce) {
	.amcal-dot--live { animation: none; }
}
.amcal-sr {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.amcal-empty { color: var(--amcal-muted); font-style: italic; }

/* ---------------------------------------------------------------
 * Widget (colonne de droite)
 * ------------------------------------------------------------- */
.amcal-widget__list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.amcal-widget__item {
	display: flex;
	gap: .6em;
	align-items: flex-start;
	padding: .55em 0;
	margin: 0;
	border-bottom: 1px solid var(--amcal-border);
	line-height: 1.3;
}
.amcal-widget__item:first-child { padding-top: 0; }
.amcal-widget__item:last-child { border-bottom: 0; }
.amcal-widget__item::before { content: none; } /* neutralise les puces de certains thèmes */

/* Colonne de gauche : icône de la plateforme, voyant d'état en dessous */
.amcal-widget__icon {
	flex: 0 0 1.5em;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 7px;
	color: var(--amcal-accent);
	font-size: 1.1em;
	padding-top: .1em;
}
.amcal-widget__body {
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.amcal-widget__when {
	font-weight: 700;
	font-size: .85em;
}
/* Fin de plage sur la même ligne ; si la colonne est trop étroite, elle passe à la ligne d'un bloc. */
.amcal-widget__until {
	display: inline-block;
	white-space: nowrap;
	font-weight: inherit;
}
.amcal-widget__recur {
	font-size: .8em;
	margin-left: .25em;
	color: var(--amcal-muted);
}
.amcal-widget__title {
	font-size: .95em;
	overflow-wrap: anywhere;
}
.amcal-widget__where {
	font-size: .8em;
	color: var(--amcal-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.amcal-widget__empty { margin: 0 0 .5em; font-size: .9em; color: var(--amcal-muted); }
.amcal-widget__footer {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: .3em 1em;
	margin-top: .5em;
	padding-top: .5em;
	border-top: 1px solid var(--amcal-border);
	font-size: .85em;
	font-weight: 600;
}
.amcal-widget__add { color: var(--amcal-accent); }

/* ---------------------------------------------------------------
 * Page calendrier
 * ------------------------------------------------------------- */
.amcal-toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: .75em;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1.5em;
}
.amcal-filters { display: flex; flex-wrap: wrap; gap: .4em; }
.amcal-filters a {
	padding: .25em .8em;
	border: 1px solid var(--amcal-border);
	border-radius: 999px;
	font-size: .9em;
	text-decoration: none;
}
.amcal-filters a.is-active {
	background: var(--amcal-accent);
	border-color: var(--amcal-accent);
	color: #fff;
}

.amcal-section { margin-bottom: 2.5em; }
.amcal-month {
	margin: 1.5em 0 .6em;
	font-size: 1em;
	text-transform: none;
	color: var(--amcal-muted);
	border-bottom: 1px solid var(--amcal-border);
	padding-bottom: .3em;
}

.amcal-card {
	display: flex;
	gap: 1em;
	padding: 1em 0;
	border-bottom: 1px solid var(--amcal-border);
	scroll-margin-top: 80px;
}
.amcal-card:target {
	background: var(--amcal-soft);
	outline: 2px solid var(--amcal-accent);
	outline-offset: 4px;
	border-radius: var(--amcal-radius);
}
.amcal-card.is-past { opacity: .8; }
.amcal-card__icon {
	flex: 0 0 1.5em;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	font-size: 1.6em;
	color: var(--amcal-accent);
}
.amcal-card__icon .amcal-dot { width: 10px; height: 10px; }
.amcal-card__body { min-width: 0; flex: 1; }
.amcal-card__body p { margin: 0 0 .35em; }
.amcal-card__when { font-weight: 700; font-size: .95em; }
.amcal-card__title { margin: 0 0 .35em; font-size: 1.15em; }
.amcal-card__meta { display: flex; flex-wrap: wrap; gap: .6em; align-items: center; font-size: .9em; }
.amcal-card__recur { color: var(--amcal-muted); }
.amcal-card__place { font-size: .9em; }
.amcal-card__desc { font-size: .95em; }
.amcal-card__footer {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: .5em;
	font-size: .85em;
}
.amcal-card__link { font-weight: 600; }
.amcal-card__author { color: var(--amcal-muted); }

.amcal-pagination { margin-top: 1em; display: flex; gap: .4em; flex-wrap: wrap; }
.amcal-pagination .page-numbers {
	padding: .2em .65em;
	border: 1px solid var(--amcal-border);
	border-radius: var(--amcal-radius);
	text-decoration: none;
}
.amcal-pagination .page-numbers.current { background: var(--amcal-accent); border-color: var(--amcal-accent); color: #fff; }

/* ---------------------------------------------------------------
 * Formulaire
 * ------------------------------------------------------------- */
.amcal-box {
	padding: .8em 1em;
	border-radius: var(--amcal-radius);
	border: 1px solid var(--amcal-border);
	background: var(--amcal-soft);
	margin-bottom: 1.2em;
}
.amcal-box p:last-child, .amcal-box ul:last-child { margin-bottom: 0; }
.amcal-success { border-color: var(--amcal-live); }
.amcal-error { border-color: var(--amcal-accent); }

.amcal-form { max-width: 640px; }
.amcal-form__title { margin-top: 0; }

.amcal-fields .amcal-field { margin: 0 0 1em; }
.amcal-fields label { display: block; font-weight: 600; margin-bottom: .25em; }
.amcal-fields fieldset { border: 0; padding: 0; }
.amcal-fields legend { font-weight: 600; margin-bottom: .25em; padding: 0; }
.amcal-fields .amcal-field--mode label,
.amcal-fields .amcal-field--check label { font-weight: normal; display: block; margin: .15em 0; }
.amcal-fields .amcal-field--mode label { display: inline-block; margin-right: 1.5em; }
.amcal-fields input[type="text"],
.amcal-fields input[type="url"],
.amcal-fields input[type="date"],
.amcal-fields input[type="time"],
.amcal-fields select,
.amcal-fields textarea {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}
.amcal-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 1em;
}
.amcal-row--zip { grid-template-columns: 1fr 2fr; }
@media (max-width: 520px) {
	.amcal-row, .amcal-row--zip { grid-template-columns: 1fr; }
}
.amcal-req { color: var(--amcal-accent); }
.amcal-counter { display: block; text-align: right; color: var(--amcal-muted); font-size: .8em; }
.amcal-hint { font-size: .85em; color: var(--amcal-muted); }

/* Affichage conditionnel (seulement quand le JS est actif ; sans JS tout est visible). */
.amcal-js .amcal-when-plage,
.amcal-js .amcal-when-recur,
.amcal-js .amcal-when-physical,
.amcal-js .amcal-when-online,
.amcal-js .amcal-when-plage-inline,
.amcal-js .amcal-when-ponctuel { display: none; }
.amcal-js.amcal-is-plage .amcal-when-plage,
.amcal-js.amcal-is-recur .amcal-when-recur { display: grid; }
.amcal-js.amcal-is-physical .amcal-when-physical,
.amcal-js.amcal-is-online .amcal-when-online,
.amcal-js.amcal-is-ponctuel .amcal-when-ponctuel { display: block; }
.amcal-js.amcal-is-plage .amcal-when-plage-inline { display: inline; }

.amcal-actions { display: flex; align-items: center; gap: 1em; }
.amcal-button {
	display: inline-block;
	padding: .55em 1.2em;
	border: 0;
	border-radius: var(--amcal-radius);
	background: var(--amcal-accent);
	color: #fff !important;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
}
.amcal-button:hover { filter: brightness(1.1); }
.amcal-button--small { padding: .35em .9em; font-size: .9em; }

/* Mes événements */
.amcal-mine { margin-top: 2.5em; max-width: 640px; }
.amcal-mine__list { list-style: none; margin: 0; padding: 0; }
.amcal-mine__item {
	display: flex;
	gap: .75em;
	align-items: center;
	padding: .6em 0;
	border-bottom: 1px solid var(--amcal-border);
}
.amcal-mine__item.is-past { opacity: .65; }
.amcal-mine__icon { color: var(--amcal-accent); }
.amcal-mine__text { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.amcal-mine__text small { color: var(--amcal-muted); }
.amcal-mine__actions { display: flex; gap: .75em; align-items: center; font-size: .9em; white-space: nowrap; }
.amcal-mine__actions form { margin: 0; }
.amcal-link-button {
	background: none;
	border: 0;
	padding: 0;
	color: var(--amcal-accent);
	text-decoration: underline;
	cursor: pointer;
	font: inherit;
}

/* Back-office : le cadre de l'éditeur classique */
.amcal-fields--admin { max-width: 720px; padding-top: .5em; }

/* Lien « Modifier » sur la page calendrier (auteur et administrateurs) */
.amcal-card__edit { font-weight: 600; white-space: nowrap; }
.amcal-form { scroll-margin-top: 80px; }

.amcal-help { display: block; color: var(--amcal-muted); font-size: .8em; margin-top: .2em; }
