/* Calendario por mes, semana y lista · ficha pública del evento.
   Tanda 09-oct · P5 (pedidos 8 y 9). La dibuja inc/calendario.php y la
   ficha inc/evento-ficha.php.

   Una sola hoja para los dos lados. Todo lo que cambia entre el panel y el
   sitio está en variables --cal-* que se fijan en .nm-cal--panel (tokens de
   la piel nm-app de P1: radios suaves de 8/10/12 px) y en .nm-cal--sitio
   (tokens --nm-* del nm.css de cada tema: esquinas rectas con --nm-radio).
   Así el mismo marcado sirve en los dos sin repetir reglas.

   Cortes: 1100 px (celdas compactas, semana en 4 columnas), 700 px (mes
   compacto con puntos + agenda; semana en una columna) y 600 px (filas de
   la lista en dos líneas). */

/* --- Variables ------------------------------------------------------------ */

.nm-cal,
.nm-evento {
	--cal-tinta: #1B1233;
	--cal-gris: #4A4A5A;
	--cal-gris-cl: #6B6779;
	--cal-borde: #E3E0EC;
	--cal-borde-2: #EEECF3;
	--cal-fondo: #F6F4FB;
	--cal-blanco: #fff;
	--cal-primario: #240B69;
	--cal-primario-cl: #EFEAFB;
	--cal-acento: #FCCC00;
	--cal-acento-cl: #FFF6D1;
	--cal-letra: inherit;
	--cal-r-caja: 0;
	--cal-r-item: 0;
	--cal-r-control: 0;
	--cal-r-chip: 0;
	--cal-r-pildora: 0;
	--cal-r-punto: 0;
	--cal-sombra: 0 8px 24px rgba(27, 18, 51, .09);
	--cal-c: var(--cal-primario);
	--cal-c-cl: var(--cal-primario-cl);
}

/* Sitio: tokens del tema y esquinas rectas (--nm-radio vale 0). */
.nm-cal--sitio,
.nm-evento {
	--cal-tinta: var(--nm-tinta, #1B1233);
	--cal-gris: var(--nm-gris-texto, #4A4A5A);
	--cal-borde: var(--nm-gris-borde, #E3E0EC);
	--cal-fondo: var(--nm-fondo-claro, #F6F4FB);
	--cal-blanco: var(--nm-blanco, #fff);
	--cal-primario: var(--nm-morado, #240B69);
	--cal-acento: var(--nm-amarillo, #FCCC00);
	--cal-letra: var(--nm-font-cuerpo, inherit);
	--cal-r-caja: var(--nm-radio, 0);
	--cal-r-item: var(--nm-radio, 0);
	--cal-r-control: var(--nm-radio, 0);
	--cal-r-chip: var(--nm-radio, 0);
	--cal-r-pildora: var(--nm-radio, 0);
	--cal-r-punto: var(--nm-radio, 0);
}

@supports (color: color-mix(in srgb, red 10%, white)) {
	.nm-cal--sitio,
	.nm-evento {
		--cal-primario-cl: color-mix(in srgb, var(--cal-primario) 9%, #fff);
	}
}

/* Panel: la piel nm-app (P1). Los colores del colegio llegan por body.nm-sitio-*. */
.nm-cal--panel {
	--cal-tinta: var(--nm-app-tinta, #1B1233);
	--cal-gris: var(--nm-app-gris, #4A4A5A);
	--cal-gris-cl: var(--nm-app-gris-cl, #6B6779);
	--cal-borde: var(--nm-app-borde, #E3E0EC);
	--cal-borde-2: var(--nm-app-borde-2, #EEECF3);
	--cal-fondo: var(--nm-app-fondo, #F6F4FB);
	--cal-primario: var(--nm-app-primario-medio, #6D3FCF);
	--cal-primario-cl: var(--nm-app-primario-cl, #EFEAFB);
	--cal-acento: var(--nm-app-acento, #F2C230);
	--cal-acento-cl: var(--nm-app-acento-cl, #FDF5D8);
	--cal-letra: var(--nm-app-letra, inherit);
	--cal-r-caja: var(--nm-app-r-caja, 12px);
	--cal-r-item: var(--nm-app-r-item, 10px);
	--cal-r-control: var(--nm-app-r-control, 8px);
	--cal-r-chip: 6px;
	--cal-r-pildora: 999px;
	--cal-r-punto: 50%;
	--cal-sombra: var(--nm-app-sombra, 0 8px 24px rgba(27, 18, 51, .09));
}

/* Color por tipo de fecha (slug de nm_tipo_evento, ver nm_calendario_tipos_con_color()).
   El texto va siempre en tinta: el color marca el borde, la hora y el punto. */
.nm-cal-t--academico { --cal-c: #6D3FCF; --cal-c-cl: #F0EAFB; }
.nm-cal-t--sin-clases { --cal-c: #B4233A; --cal-c-cl: #FBECEE; }
.nm-cal-t--reunion-apoderados { --cal-c: #9A5B00; --cal-c-cl: #FCF1DA; }
.nm-cal-t--actividad { --cal-c: #1E7A45; --cal-c-cl: #E4F3EA; }
.nm-cal-t--admision { --cal-c: #1F5FA8; --cal-c-cl: #E6EFFA; }
.nm-cal-t--otro,
.nm-cal-t--ninguno { --cal-c: var(--cal-primario); --cal-c-cl: var(--cal-primario-cl); }

/* --- Base ------------------------------------------------------------------ */

.nm-cal {
	font-family: var(--cal-letra);
	color: var(--cal-tinta);
	font-size: 14px;
	line-height: 1.45;
}

.nm-cal *,
.nm-cal *::before,
.nm-cal *::after {
	box-sizing: border-box;
}

.nm-cal ul,
.nm-cal ol {
	list-style: none;
	margin: 0;
	padding: 0;
}

.nm-cal li {
	margin: 0;
}

.nm-cal a {
	text-decoration: none;
}

.nm-cal [hidden] {
	display: none !important;
}

.nm-cal .nm-app-i,
.nm-evento .nm-app-i {
	flex: 0 0 auto;
	display: block;
}

/* Oculto a la vista, legible por lector de pantalla. */
.nm-cal-oculto {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.nm-cal :focus-visible,
.nm-evento :focus-visible {
	outline: 2px solid var(--cal-primario);
	outline-offset: 2px;
}

.nm-cal .nm-cal-enlace {
	background: none;
	border: 0;
	padding: 0;
	font: inherit;
	font-weight: 700;
	color: var(--cal-primario);
	text-decoration: underline;
	text-underline-offset: 2px;
	cursor: pointer;
}

/* --- Barra: Anterior · Hoy · Siguiente, título, Mes/Semana/Lista ----------- */

.nm-cal-barra {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 20px;
	margin: 0 0 14px;
}

.nm-cal-barra__nav,
.nm-cal-barra__der {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 10px;
	min-width: 0;
}

.nm-cal .nm-cal-titulo {
	margin: 0 0 0 8px;
	padding: 0;
	font-family: var(--cal-letra);
	font-size: 22px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -.01em;
	color: var(--cal-tinta);
	text-transform: none;
}

.nm-cal-barra__sub {
	font-size: 13.5px;
	color: var(--cal-gris);
}

.nm-cal .nm-cal-b {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-width: 40px;
	min-height: 40px;
	margin: 0;
	padding: 0 14px;
	border: 1px solid var(--cal-borde);
	border-radius: var(--cal-r-control);
	background: var(--cal-blanco);
	color: var(--cal-tinta);
	font-family: var(--cal-letra);
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
	text-decoration: none;
	text-transform: none;
	letter-spacing: 0;
	box-shadow: none;
	cursor: pointer;
	transition: border-color .15s, color .15s, background-color .15s;
}

.nm-cal .nm-cal-b:hover {
	border-color: var(--cal-primario);
	color: var(--cal-primario);
	background: var(--cal-blanco);
}

.nm-cal .nm-cal-b--ico {
	width: 40px;
	padding: 0;
}

.nm-cal .nm-cal-b--hoy.is-actual {
	border-color: var(--cal-acento);
	box-shadow: inset 0 -3px 0 var(--cal-acento);
}

.nm-cal-vistas {
	display: inline-flex;
	gap: 2px;
	padding: 3px;
	background: var(--cal-fondo);
	border: 1px solid var(--cal-borde);
	border-radius: var(--cal-r-pildora);
}

.nm-cal .nm-cal-vista {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	padding: 0 16px;
	border-radius: var(--cal-r-pildora);
	font-size: 13.5px;
	font-weight: 700;
	color: var(--cal-gris);
	text-decoration: none;
}

.nm-cal .nm-cal-vista:hover {
	color: var(--cal-tinta);
}

.nm-cal .nm-cal-vista.is-on {
	background: var(--cal-blanco);
	color: var(--cal-tinta);
	box-shadow: 0 1px 2px rgba(27, 18, 51, .12);
}

/* En el sitio la vista elegida va llena, como los filtros del tema. */
.nm-cal--sitio .nm-cal-vista.is-on {
	background: var(--cal-primario);
	color: #fff;
	box-shadow: none;
}

/* Filtro por curso (solo sitio). */
.nm-cal-curso {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
}

/* (0,2,0): le gana a `.elementor-kit-N label` (0,1,1) del kit, que la
   pintaba morada a 17 px, distinta del resto de la barra. */
.nm-cal .nm-cal-curso__lab {
	margin: 0;
	font: 700 13px/1.2 var(--cal-letra);
	letter-spacing: 0;
	color: var(--cal-gris);
}

.nm-cal .nm-cal-curso select {
	min-height: 40px;
	max-width: 200px;
	margin: 0;
	padding: 0 34px 0 12px;
	border: 1px solid var(--cal-borde);
	border-radius: var(--cal-r-control);
	background-color: var(--cal-blanco);
	color: var(--cal-tinta);
	font: 600 14px/1.2 var(--cal-letra);
}

/* Con JS el filtro se envía al cambiar: el botón «Ver» sobra. */
.nm-cal.is-js .nm-cal-curso__ver {
	display: none;
}

/* Leyenda de colores */
.nm-cal-leyenda {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 18px;
	margin: 0 0 14px !important;
	font-size: 12.5px;
	color: var(--cal-gris);
}

.nm-cal-leyenda li {
	display: inline-flex;
	align-items: center;
	gap: 7px;
}

.nm-cal-leyenda__c {
	width: 10px;
	height: 10px;
	background: var(--cal-c);
	border-radius: var(--cal-r-punto);
}

/* --- Mes: grilla de 7 columnas -------------------------------------------- */

.nm-cal-mes {
	border: 1px solid var(--cal-borde);
	border-radius: var(--cal-r-caja);
	background: var(--cal-blanco);
	overflow: hidden;
}

.nm-cal-mes__cab,
.nm-cal .nm-cal-mes__dias {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
}

.nm-cal-mes__cab {
	background: var(--cal-fondo);
	border-bottom: 1px solid var(--cal-borde);
}

.nm-cal-mes__cab span {
	padding: 10px 10px;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--cal-gris);
}

.nm-cal-mes__cab .is-finde {
	color: var(--cal-gris-cl);
}

.nm-cal-dia {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
	min-height: 116px;
	padding: 7px 7px 8px;
	border-right: 1px solid var(--cal-borde-2);
	border-bottom: 1px solid var(--cal-borde-2);
	background: var(--cal-blanco);
}

.nm-cal-dia:nth-child(7n) {
	border-right: 0;
}

.nm-cal-dia:nth-last-child(-n+7) {
	border-bottom: 0;
}

.nm-cal-dia.is-finde {
	background: #FCFBFE;
}

/* Días de los meses vecinos al 30 %: el borde se queda, se apaga el contenido. */
.nm-cal-dia.is-fuera > * {
	opacity: .3;
}

.nm-cal-dia.is-fuera:hover > * {
	opacity: .6;
}

/* Hoy, tintado con el acento. */
.nm-cal-dia.is-hoy {
	background: var(--cal-acento-cl);
}

.nm-cal-dia__cab {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 26px;
}

.nm-cal-dia__n {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 26px;
	height: 26px;
	padding: 0 6px;
	border-radius: var(--cal-r-pildora);
	font-size: 13px;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	color: var(--cal-tinta);
}

.nm-cal-dia.is-hoy .nm-cal-dia__n {
	background: var(--cal-acento);
	color: #1B1233;
}

.nm-cal .nm-cal-dia__mas {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: var(--cal-r-control);
	color: var(--cal-gris);
	opacity: 0;
	transition: opacity .15s, background-color .15s;
}

.nm-cal-dia:hover .nm-cal-dia__mas,
.nm-cal .nm-cal-dia__mas:focus-visible {
	opacity: 1;
}

.nm-cal .nm-cal-dia__mas:hover {
	background: var(--cal-primario-cl);
	color: var(--cal-primario);
}

/* Panel: todo el día es clicable para agregar (calendario.js), y se nota. */
.nm-cal--panel .nm-cal-dia[data-nm-cal-nuevo] {
	cursor: pointer;
}

.nm-cal--panel .nm-cal-dia[data-nm-cal-nuevo]:hover {
	box-shadow: inset 0 0 0 1px var(--cal-primario-cl);
}

.nm-cal-dia__chips {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
}

/* Chip: hora + título en una línea, borde del color del tipo. */
.nm-cal .nm-cal-chip {
	display: flex;
	align-items: baseline;
	gap: 5px;
	width: 100%;
	min-width: 0;
	margin: 0;
	padding: 3px 7px 3px 6px;
	border: 0;
	border-left: 3px solid var(--cal-c);
	border-radius: var(--cal-r-chip);
	background: var(--cal-c-cl);
	color: var(--cal-tinta);
	font-family: var(--cal-letra);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.35;
	text-align: left;
	text-decoration: none;
	text-transform: none;
	letter-spacing: 0;
	box-shadow: none;
	cursor: pointer;
	transition: box-shadow .15s;
}

.nm-cal .nm-cal-chip:hover {
	box-shadow: inset 0 0 0 1px var(--cal-c);
	color: var(--cal-tinta);
}

.nm-cal-chip__h {
	flex: 0 0 auto;
	font-weight: 800;
	color: var(--cal-c);
	font-variant-numeric: tabular-nums;
}

.nm-cal-chip__t {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* Día siguiente de un evento largo: la barra sigue, el fondo se aclara. */
.nm-cal .nm-cal-chip.is-sigue {
	background: transparent;
	color: var(--cal-gris);
	font-weight: 500;
}

/* Borrador (solo panel): punteado, no se ve en el sitio. */
.nm-cal .nm-cal-chip.is-borrador {
	background: var(--cal-blanco);
	outline: 1px dashed var(--cal-c);
	outline-offset: -1px;
}

.nm-cal-chip.is-recien,
.nm-cal-tarjeta.is-recien {
	animation: nm-cal-recien 1.6s ease-out;
}

@keyframes nm-cal-recien {
	0% { box-shadow: 0 0 0 3px var(--cal-acento); }
	100% { box-shadow: 0 0 0 3px transparent; }
}

.nm-cal .nm-cal-dia__resto {
	align-self: flex-start;
	padding: 1px 7px;
	font-size: 12px;
	font-weight: 700;
	color: var(--cal-primario);
	text-decoration: none;
}

.nm-cal .nm-cal-dia__resto:hover {
	text-decoration: underline;
}

/* --- Tarjeta (semana, agenda, escritorio) ---------------------------------- */

.nm-cal .nm-cal-tarjeta {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 3px;
	width: 100%;
	min-width: 0;
	margin: 0;
	padding: 9px 11px 10px;
	border: 1px solid var(--cal-borde);
	border-left: 3px solid var(--cal-c);
	border-radius: var(--cal-r-chip);
	background: var(--cal-blanco);
	color: var(--cal-tinta);
	font-family: var(--cal-letra);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.35;
	text-align: left;
	text-decoration: none;
	text-transform: none;
	letter-spacing: 0;
	box-shadow: none;
	cursor: pointer;
	transition: border-color .15s, box-shadow .15s;
}

.nm-cal a.nm-cal-tarjeta:hover,
.nm-cal button.nm-cal-tarjeta:hover {
	border-color: var(--cal-c);
	box-shadow: var(--cal-sombra);
	color: var(--cal-tinta);
}

.nm-cal--sitio a.nm-cal-tarjeta:hover {
	box-shadow: none;
}

div.nm-cal-tarjeta {
	cursor: default;
}

.nm-cal-tarjeta__h,
.nm-cal-tarjeta__l {
	display: flex;
	align-items: center;
	gap: 5px;
	min-width: 0;
}

.nm-cal-tarjeta__h {
	font-size: 12px;
	font-weight: 800;
	color: var(--cal-c);
	font-variant-numeric: tabular-nums;
}

.nm-cal-tarjeta__t {
	font-size: 13.5px;
	font-weight: 700;
	color: var(--cal-tinta);
	overflow-wrap: anywhere;
}

.nm-cal-tarjeta__l {
	font-size: 12px;
	color: var(--cal-gris);
}

.nm-cal-tarjeta__l > span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.nm-cal-tarjeta__et {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 8px;
	margin-top: 3px;
}

.nm-cal-tipo {
	display: inline-flex;
	padding: 2px 8px;
	border-radius: var(--cal-r-chip);
	background: var(--cal-c-cl);
	color: var(--cal-c);
	font-size: 11px;
	font-weight: 700;
	line-height: 1.4;
}

.nm-cal-cursos {
	font-size: 11.5px;
	color: var(--cal-gris);
}

.nm-cal-et-borrador {
	display: inline-flex;
	padding: 1px 7px;
	border: 1px solid #EBD3A6;
	border-radius: 5px;
	background: #fff;
	color: #9A6200;
	font-size: 10.5px;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
	line-height: 1.5;
}

.nm-cal .nm-cal-tarjeta.is-borrador {
	border-style: dashed;
	border-left-style: solid;
}

.nm-cal .nm-cal-tarjeta.is-sigue {
	gap: 1px;
	padding: 6px 10px 7px;
	background: var(--cal-fondo);
}

.nm-cal .nm-cal-tarjeta.is-sigue .nm-cal-tarjeta__h {
	font-size: 11px;
	font-weight: 700;
}

.nm-cal .nm-cal-tarjeta.is-sigue .nm-cal-tarjeta__t {
	font-size: 12.5px;
	font-weight: 600;
	color: var(--cal-gris);
}

/* --- Semana: 7 columnas tipo agenda ---------------------------------------- */

.nm-cal .nm-cal-semana {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 10px;
	align-items: stretch;
}

.nm-cal-sdia {
	display: flex;
	flex-direction: column;
	min-width: 0;
	min-height: 220px;
	border: 1px solid var(--cal-borde);
	border-radius: var(--cal-r-caja);
	background: var(--cal-blanco);
	overflow: hidden;
}

.nm-cal-sdia.is-finde {
	background: #FCFBFE;
}

.nm-cal-sdia.is-hoy {
	border-color: var(--cal-acento);
	box-shadow: 0 0 0 2px var(--cal-acento-cl);
}

.nm-cal-sdia__cab {
	display: flex;
	align-items: baseline;
	gap: 7px;
	padding: 11px 13px 10px;
	border-bottom: 1px solid var(--cal-borde-2);
}

.nm-cal-sdia.is-hoy .nm-cal-sdia__cab {
	background: var(--cal-acento-cl);
}

.nm-cal-sdia__dow {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--cal-gris);
}

.nm-cal-sdia__n {
	font-size: 19px;
	font-weight: 800;
	line-height: 1;
	color: var(--cal-tinta);
	font-variant-numeric: tabular-nums;
}

.nm-cal-sdia__hoy {
	margin-left: auto;
	padding: 2px 8px;
	border-radius: var(--cal-r-pildora);
	background: var(--cal-acento);
	color: #1B1233;
	font-size: 10.5px;
	font-weight: 800;
	letter-spacing: .03em;
	text-transform: uppercase;
}

.nm-cal-sdia__cuerpo {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 7px;
	padding: 9px;
}

.nm-cal .nm-cal-sdia__cuerpo ul {
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.nm-cal-sdia__libre {
	margin: auto 0;
	text-align: center;
	font-size: 12px;
	color: #9A95A8;
}

.nm-cal .nm-cal-sdia__mas {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
	min-height: 32px;
	margin-top: auto;
	border: 1px dashed var(--cal-borde);
	border-radius: var(--cal-r-chip);
	color: var(--cal-gris);
	font-size: 12px;
	font-weight: 700;
	opacity: .75;
	text-decoration: none;
	transition: opacity .15s, border-color .15s, color .15s;
}

.nm-cal-sdia:hover .nm-cal-sdia__mas,
.nm-cal .nm-cal-sdia__mas:focus-visible {
	opacity: 1;
}

.nm-cal .nm-cal-sdia__mas:hover {
	border-color: var(--cal-primario);
	color: var(--cal-primario);
}

.nm-cal-sdia.is-vacio .nm-cal-sdia__libre + .nm-cal-sdia__mas {
	margin-top: 0;
}

/* --- Teléfono: mes compacto con puntos + agenda ---------------------------- */

.nm-cal-telefono {
	display: none;
}

.nm-cal-mini {
	padding: 8px 6px 6px;
	border: 1px solid var(--cal-borde);
	border-radius: var(--cal-r-caja);
	background: var(--cal-blanco);
}

.nm-cal-mini__cab,
.nm-cal-mini__dias {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
}

.nm-cal-mini__cab span {
	padding: 2px 0 6px;
	text-align: center;
	font-size: 11px;
	font-weight: 700;
	color: var(--cal-gris);
}

.nm-cal .nm-cal-mini__d {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	height: 46px;
	border-radius: var(--cal-r-control);
	color: var(--cal-tinta);
	text-decoration: none;
}

.nm-cal-mini__n {
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
	font-variant-numeric: tabular-nums;
}

.nm-cal-mini__d.tiene .nm-cal-mini__n {
	font-weight: 800;
}

.nm-cal-mini__d.is-fuera {
	opacity: .3;
}

.nm-cal-mini__d.is-hoy .nm-cal-mini__n {
	padding: 2px 5px;
	border-radius: var(--cal-r-pildora);
	background: var(--cal-acento);
	color: #1B1233;
	font-weight: 800;
}

.nm-cal .nm-cal-mini__d.is-sel {
	background: var(--cal-primario-cl);
	box-shadow: inset 0 0 0 1.5px var(--cal-primario);
}

.nm-cal-mini__p {
	display: flex;
	gap: 3px;
	height: 6px;
}

.nm-cal-mini__p i {
	display: block;
	width: 6px;
	height: 6px;
	border-radius: var(--cal-r-punto);
	background: var(--cal-c);
}

.nm-cal-agenda {
	margin-top: 18px;
}

.nm-cal-agenda__filtro {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 6px 12px;
	margin: 0 0 12px;
	font-size: 13px;
	font-weight: 700;
	color: var(--cal-tinta);
}

.nm-cal-agenda__dia {
	margin: 0 0 16px;
	scroll-margin-top: 90px;
}

.nm-cal-agenda__dia:focus {
	outline: none;
}

.nm-cal .nm-cal-agenda__f {
	margin: 0 0 8px;
	padding: 0;
	font-family: var(--cal-letra);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .02em;
	line-height: 1.3;
	color: var(--cal-gris);
	text-transform: none;
}

.nm-cal .nm-cal-agenda ul {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

/* En «todo el mes» no se repiten los días que siguen de un evento largo. */
.nm-cal-agenda__dia.solo-sigue,
.nm-cal-agenda__i.is-sigue {
	display: none;
}

.nm-cal-agenda.is-filtrado .nm-cal-agenda__dia {
	display: none;
}

.nm-cal-agenda.is-filtrado .nm-cal-agenda__dia.is-sel,
.nm-cal-agenda.is-filtrado .nm-cal-agenda__dia.is-sel .nm-cal-agenda__i {
	display: block;
}

.nm-cal-agenda__vacio,
.nm-cal-vacio {
	margin: 8px 0 0;
	padding: 22px 16px;
	border: 1px dashed var(--cal-borde);
	border-radius: var(--cal-r-item);
	text-align: center;
	font-size: 13.5px;
	color: var(--cal-gris);
}

/* --- Lista: el mes agrupado por día ---------------------------------------- */

.nm-cal-lista {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.nm-cal .nm-cal-lista__f {
	margin: 0 0 8px;
	padding: 0;
	font-family: var(--cal-letra);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .02em;
	line-height: 1.3;
	color: var(--cal-gris);
	text-transform: none;
}

.nm-cal .nm-cal-lista ul {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.nm-cal-fila {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 12px 14px;
	border: 1px solid var(--cal-borde);
	border-left: 3px solid var(--cal-c);
	border-radius: var(--cal-r-item);
	background: var(--cal-blanco);
}

.nm-cal-fila.is-borrador {
	border-style: dashed;
	border-left-style: solid;
}

.nm-cal-fila__f {
	flex: 0 0 48px;
	padding: 6px 0;
	border-radius: var(--cal-r-control);
	background: var(--cal-c-cl);
	text-align: center;
	color: var(--cal-c);
	line-height: 1;
}

.nm-cal-fila__f b {
	display: block;
	font-size: 19px;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
}

.nm-cal-fila__f i {
	display: block;
	margin-top: 3px;
	font-size: 11px;
	font-style: normal;
	font-weight: 700;
	text-transform: uppercase;
}

.nm-cal-fila__txt {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
}

.nm-cal .nm-cal-fila__t {
	font-size: 14.5px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--cal-tinta);
	overflow-wrap: anywhere;
}

.nm-cal a.nm-cal-fila__t:hover {
	color: var(--cal-primario);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.nm-cal-fila__m {
	font-size: 13px;
	color: var(--cal-gris);
}

.nm-cal-fila__acc {
	flex: 0 0 auto;
}

/* --- Panel: notas alrededor del calendario --------------------------------- */

.nm-cal-pagina .nm-cal-nota {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0 0 14px;
	font-size: 13px;
	color: var(--nm-app-gris, #4A4A5A);
}

.nm-cal-pagina .nm-cal-nota a.nm-app-pildora:hover {
	text-decoration: none;
	background: var(--nm-app-primario, #240B69);
	color: #fff;
}

.nm-cal-pagina .nm-cal-ayuda {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	max-width: 80ch;
	margin: 16px 0 0;
	font-size: 12.5px;
	color: var(--nm-app-gris-cl, #6B6779);
}

.nm-cal-pagina .nm-cal-ayuda .nm-app-i {
	margin-top: 1px;
}

/* La semana del escritorio (P3): columnas más bajas. */
.nm-cal--escritorio .nm-cal-sdia {
	min-height: 160px;
}

.nm-cal-barra--mini .nm-cal-titulo {
	margin-left: 0;
	font-size: 17px;
}

/* --- Cortes ---------------------------------------------------------------- */

@media (max-width: 1100px) {
	.nm-cal-dia {
		min-height: 92px;
		padding: 5px 5px 6px;
	}

	.nm-cal .nm-cal-chip {
		padding: 2px 5px;
		font-size: 11px;
	}

	.nm-cal-chip__h {
		display: none;
	}

	.nm-cal-mes__cab span {
		padding: 8px 6px;
		font-size: 10.5px;
	}

	.nm-cal .nm-cal-semana {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	.nm-cal .nm-cal-titulo {
		flex: 1 0 100%;
		order: -1;
		margin: 0 0 2px;
		font-size: 20px;
	}

	.nm-cal-barra,
	.nm-cal-barra__der {
		align-items: stretch;
		width: 100%;
	}

	.nm-cal-vistas {
		flex: 1 1 auto;
	}

	.nm-cal .nm-cal-vista {
		flex: 1 1 0;
		justify-content: center;
		padding: 0 8px;
	}

	.nm-cal-curso {
		flex: 1 1 100%;
	}

	.nm-cal .nm-cal-curso select {
		flex: 1 1 auto;
		max-width: none;
	}

	/* Mes: la grilla de títulos no se lee en 390 px; va el mes con puntos y la agenda. */
	.nm-cal-mes {
		display: none;
	}

	.nm-cal-telefono {
		display: block;
	}

	/* Semana: un día debajo del otro; los días sin fechas en una sola línea. */
	.nm-cal .nm-cal-semana {
		grid-template-columns: minmax(0, 1fr);
		gap: 8px;
	}

	.nm-cal-sdia,
	.nm-cal--escritorio .nm-cal-sdia {
		min-height: 0;
	}

	.nm-cal-sdia.is-vacio {
		flex-direction: row;
		align-items: center;
	}

	.nm-cal-sdia.is-vacio .nm-cal-sdia__cab {
		flex: 0 0 auto;
		border-bottom: 0;
	}

	/* Hoy sin fechas en una sola línea: se tiñe la fila entera, no solo la cabecera. */
	.nm-cal-sdia.is-hoy.is-vacio {
		background: var(--cal-acento-cl);
	}

	.nm-cal-sdia.is-hoy.is-vacio .nm-cal-sdia__cab {
		background: transparent;
	}

	.nm-cal-sdia.is-vacio .nm-cal-sdia__cuerpo {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		padding: 0 10px 0 0;
	}

	.nm-cal-sdia.is-vacio .nm-cal-sdia__libre {
		margin: 0;
	}

	.nm-cal-sdia.is-vacio .nm-cal .nm-cal-sdia__mas,
	.nm-cal-sdia.is-vacio .nm-cal-sdia__mas {
		margin: 0;
		padding: 0 10px;
	}
}

@media (max-width: 600px) {
	.nm-cal-fila {
		flex-wrap: wrap;
	}

	.nm-cal-fila__acc {
		width: 100%;
		padding-left: 62px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nm-cal *,
	.nm-evento * {
		transition: none !important;
		animation: none !important;
	}
}

/* =========================================================================
   Ficha pública del evento (/evento/<slug>/). Rectas, con los tokens del tema.
   ========================================================================= */

.nm-oculto-lector {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.nm-evento {
	display: block;
	font-family: var(--cal-letra);
	color: var(--cal-tinta);
}

.nm-evento *,
.nm-evento *::before,
.nm-evento *::after {
	box-sizing: border-box;
}

.nm-evento__cab {
	background: var(--cal-fondo);
	border-bottom: 1px solid var(--cal-borde);
}

.nm-evento__cab-in,
.nm-evento__cuerpo {
	width: 100%;
	max-width: calc(var(--nm-reticula, 1280px) + 2 * var(--nm-reticula-lado, 80px));
	margin: 0 auto;
	padding-left: var(--nm-reticula-lado, 80px);
	padding-right: var(--nm-reticula-lado, 80px);
}

.nm-evento__cab-in {
	padding-top: 48px;
	padding-bottom: 48px;
}

.nm-evento .nm-evento__migas {
	margin: 0 0 20px;
	font-size: 13px;
	color: var(--cal-gris);
}

.nm-evento .nm-evento__migas a {
	color: var(--cal-primario);
	text-decoration: none;
}

.nm-evento .nm-evento__migas a:hover {
	text-decoration: underline;
}

.nm-evento .nm-migas__sep {
	margin: 0 4px;
	color: var(--cal-gris);
}

.nm-evento__ante {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 14px;
	margin: 0 0 12px;
}

.nm-evento__tipo {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--cal-c);
}

.nm-evento__punto {
	width: 10px;
	height: 10px;
	background: var(--cal-c);
}

.nm-evento__estado {
	padding: 3px 9px;
	border: 1px solid var(--cal-borde);
	background: var(--cal-blanco);
	color: var(--cal-gris);
	font-size: 12px;
	font-weight: 700;
}

.nm-evento__estado--curso {
	border-color: var(--cal-acento);
	background: var(--cal-acento);
	color: #1B1233;
}

.nm-evento .nm-evento__h1 {
	max-width: 30ch;
	margin: 0 0 20px;
	padding: 0;
	font-family: var(--nm-font-titulo, inherit);
	font-size: var(--nm-size-h1, 44px);
	font-weight: 800;
	line-height: 1.14;
	letter-spacing: -.01em;
	color: var(--cal-primario);
}

.nm-evento .nm-evento__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 28px;
	margin: 0 0 18px;
	padding: 0;
	list-style: none;
	font-size: 17px;
	line-height: 1.4;
}

.nm-evento__meta li {
	display: flex;
	align-items: center;
	gap: 9px;
	margin: 0;
}

.nm-evento__meta .nm-app-i {
	color: var(--cal-primario);
}

.nm-evento__para {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
}

.nm-evento__curso {
	padding: 4px 10px;
	border: 1px solid var(--cal-borde);
	background: var(--cal-blanco);
	font-size: 13px;
	font-weight: 600;
	color: var(--cal-tinta);
}

.nm-evento__cuerpo {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: 56px;
	padding-top: 56px;
	padding-bottom: var(--nm-sec-y, 96px);
}

.nm-evento__foto {
	margin: 0 0 32px;
}

.nm-evento__foto img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: var(--nm-radio, 0);
}

.nm-evento__texto {
	max-width: 720px;
	font-size: var(--nm-size-cuerpo, 17px);
	line-height: 1.65;
}

.nm-evento__texto > *:first-child {
	margin-top: 0;
}

.nm-evento__galeria {
	margin-top: 48px;
}

.nm-evento .nm-evento__h2 {
	margin: 0 0 16px;
	padding: 0;
	font-family: var(--nm-font-titulo, inherit);
	font-size: 20px;
	font-weight: 800;
	line-height: 1.25;
	color: var(--cal-tinta);
}

.nm-evento__n {
	font-size: 15px;
	font-weight: 600;
	color: var(--cal-gris);
}

.nm-evento__galeria .wp-block-gallery {
	margin: 0;
}

.nm-evento__galeria .wp-block-gallery img {
	border-radius: var(--nm-radio, 0);
}

/* Todas las miniaturas a 3:2: el recorte de WordPress estira cada fila a la
   foto más alta y las filas quedaban de distinto alto. */
.nm-evento__galeria .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img {
	flex: none;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

/* Respaldo sin el bloque de galería de WordPress. */
.nm-evento__fotos {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
}

.nm-evento__fotos img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
}

.nm-evento__nada {
	margin: 0;
	padding: 24px;
	border: 1px dashed var(--cal-borde);
	color: var(--cal-gris);
}

.nm-evento__lado {
	position: sticky;
	top: 24px;
	display: flex;
	flex-direction: column;
	align-self: start;
	gap: 20px;
}

.nm-evento__caja {
	padding: 24px;
	border: 1px solid var(--cal-borde);
	border-top: 4px solid var(--cal-acento);
	background: var(--cal-blanco);
}

.nm-evento .nm-evento__b {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 0 18px;
	border: 1px solid var(--cal-primario);
	border-radius: var(--nm-radio, 0);
	background: var(--cal-blanco);
	color: var(--cal-primario);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	text-decoration: none;
	text-align: center;
	transition: background-color .15s, color .15s;
}

.nm-evento .nm-evento__b:hover {
	background: var(--cal-primario-cl);
	color: var(--cal-primario);
}

.nm-evento .nm-evento__b + .nm-evento__b {
	margin-top: 10px;
}

.nm-evento .nm-evento__b--pri {
	background: var(--cal-primario);
	color: #fff;
}

.nm-evento .nm-evento__b--pri:hover {
	background: var(--nm-morado-medio, var(--cal-primario));
	color: #fff;
}

.nm-evento__ayuda {
	margin: 12px 0 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--cal-gris);
}

.nm-evento .nm-evento__volver {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	font-weight: 700;
	color: var(--cal-primario);
	text-decoration: none;
}

.nm-evento .nm-evento__volver:hover {
	text-decoration: underline;
}

/* «Otras fechas próximas» reutiliza el marcado de [nm_proximas_fechas]. */
.nm-evento .nm-fechas--lado {
	grid-template-columns: minmax(0, 1fr);
	gap: 10px;
}

.nm-evento .nm-fechas--lado .nm-fechas__item {
	padding: 12px;
}

/* Ítems enlazados de «Próximas fechas» (el resto del estilo lo pone el tema). */
.nm-fechas .nm-fechas__item--enlace {
	box-sizing: border-box;
	height: 100%;
	color: inherit;
	text-decoration: none;
	transition: border-color .15s;
}

.nm-fechas .nm-fechas__item--enlace:hover {
	border-color: var(--nm-morado, #240B69);
}

.nm-fechas .nm-fechas__item--enlace:hover .nm-fechas__titulo {
	text-decoration: underline;
	text-underline-offset: 2px;
}

@media (max-width: 1024px) {
	.nm-evento__cuerpo {
		grid-template-columns: minmax(0, 1fr);
		gap: 40px;
	}

	.nm-evento__lado {
		position: static;
	}
}

@media (max-width: 767px) {
	.nm-evento__cab-in,
	.nm-evento__cuerpo {
		padding-left: var(--nm-reticula-lado, 20px);
		padding-right: var(--nm-reticula-lado, 20px);
	}

	.nm-evento__cab-in {
		padding-top: 28px;
		padding-bottom: 32px;
	}

	.nm-evento .nm-evento__meta {
		flex-direction: column;
		gap: 8px;
		font-size: 16px;
	}

	.nm-evento__cuerpo {
		padding-top: 28px;
		padding-bottom: var(--nm-sec-y, 56px);
	}

	.nm-evento__foto {
		margin-left: calc(-1 * var(--nm-reticula-lado, 20px));
		margin-right: calc(-1 * var(--nm-reticula-lado, 20px));
	}

	.nm-evento__caja {
		padding: 20px;
	}
}

/* =========================================================================
   «Cargar varias fechas» (inc/carga-masiva.php, panel nuevo)
   ========================================================================= */

.nm-carga__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
	align-items: start;
}

.nm-carga__form {
	margin: 0;
	min-width: 0;
}

.nm-carga__form .nm-app-caja {
	height: 100%;
}

.nm-carga__acciones {
	display: flex;
	justify-content: flex-end;
	margin-top: 16px;
}

.nm-carga .nm-carga__lista {
	margin: 8px 0 4px 18px;
	padding: 0;
	list-style: disc;
}

.nm-carga .nm-carga__lista li {
	margin: 2px 0;
}

.nm-carga .nm-carga__archivo {
	display: block;
	width: 100%;
	min-height: 40px;
	padding: 8px;
	border: 1px dashed var(--nm-app-borde, #E3E0EC);
	border-radius: var(--nm-app-r-control, 8px);
	background: var(--nm-app-fondo, #F6F4FB);
	font: inherit;
	font-size: 14px;
	color: var(--nm-app-tinta, #1B1233);
}

/* El botón nativo («Seleccionar archivo») con la piel del panel, como un botón secundario. */
.nm-carga .nm-carga__archivo::file-selector-button {
	min-height: 34px;
	margin-right: 12px;
	padding: 0 14px;
	border: 1px solid var(--nm-app-borde, #E3E0EC);
	border-radius: var(--nm-app-r-control, 8px);
	background: #fff;
	color: var(--nm-app-tinta, #1B1233);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
	transition: border-color .15s;
}

.nm-carga .nm-carga__archivo::file-selector-button:hover {
	border-color: var(--nm-app-primario-medio, #9B6BE0);
}

@media (max-width: 960px) {
	.nm-carga__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}
