.ra-program-table-block {
	--ra-header-bg: #0a67a3;
	--ra-header-text: #ffffff;
	--ra-day-border: #d9e2ec;
	--ra-day-stripe: #f6f8fb;
	--ra-day-text: #172033;
	--ra-radius: 18px;
	--ra-font-size: 15px;

	--ra-day-table-bg: #ffffff;
	--ra-day-surface: #ffffff;
	--ra-day-soft: #f8fafc;
	--ra-day-hover: color-mix(in srgb, var(--ra-header-bg) 8%, #ffffff 92%);

	--ra-night-table-bg: #111827;
	--ra-night-surface: #0b1220;
	--ra-night-soft: #162033;
	--ra-night-border: rgba(255,255,255,.14);
	--ra-night-stripe: rgba(255,255,255,.055);
	--ra-night-text: #eaf0f8;

	--ra-table-bg: var(--ra-day-table-bg);
	--ra-surface: var(--ra-day-surface);
	--ra-soft: var(--ra-day-soft);
	--ra-border: var(--ra-day-border);
	--ra-stripe: var(--ra-day-stripe);
	--ra-text: var(--ra-day-text);
	--ra-muted: color-mix(in srgb, var(--ra-day-text) 66%, #ffffff 34%);
	--ra-hover: var(--ra-day-hover);
	--ra-shadow: 0 18px 42px rgba(2, 12, 27, .08);
	--ra-heading-bg: linear-gradient(135deg, color-mix(in srgb, var(--ra-header-bg) 9%, #ffffff 91%), #ffffff);
	width: 100%;
	color: var(--ra-text);
}

/* Encabezado superior */
.ra-program-table-heading {
	position: relative;
	margin-bottom: 16px;
	padding: clamp(16px, 2.4vw, 22px);
	border-radius: var(--ra-radius);
	border: 1px solid var(--ra-border);
	background: var(--ra-heading-bg);
	box-shadow: 0 10px 26px rgba(2, 12, 27, .045);
	overflow: hidden;
}

.ra-program-table-heading::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 5px;
	background: linear-gradient(180deg, var(--ra-header-bg), color-mix(in srgb, var(--ra-header-bg) 58%, #f4c400 42%));
}

.ra-program-table-heading span {
	display: inline-flex;
	width: fit-content;
	padding: 7px 11px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--ra-header-bg) 13%, #ffffff 87%);
	color: var(--ra-header-bg);
	font-size: .74rem;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .055em;
	line-height: 1;
}

.ra-program-table-heading h3 {
	margin: 10px 0 5px;
	color: var(--ra-text);
	font-size: clamp(1.45rem, 3vw, 2.1rem);
	line-height: 1.05;
	letter-spacing: -.025em;
}

.ra-program-table-heading p {
	margin: 0;
	color: var(--ra-muted);
	line-height: 1.55;
}

/* Contenedor de tabla */
.ra-program-table-wrap {
	width: 100%;
	border-radius: var(--ra-radius);
	overflow: hidden;
	border: 1px solid var(--ra-border);
	background: var(--ra-table-bg);
}

.ra-program-table--shadow {
	box-shadow: var(--ra-shadow);
}

/* Tabla PC */
.ra-program-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	margin: 0;
	color: var(--ra-text);
	font-size: var(--ra-font-size);
	background: var(--ra-table-bg);
	table-layout: fixed;
}

.ra-program-table th,
.ra-program-table td {
	padding: 15px 16px;
	border-right: 1px solid var(--ra-border);
	border-bottom: 1px solid var(--ra-border);
	text-align: left;
	vertical-align: middle;
	line-height: 1.45;
	background: var(--ra-table-bg);
	transition: background-color .18s ease, color .18s ease, transform .18s ease;
	word-break: normal;
	overflow-wrap: anywhere;
}

.ra-program-table tr > *:last-child {
	border-right: 0;
}

.ra-program-table tbody tr:last-child > * {
	border-bottom: 0;
}

.ra-program-table th {
	background: linear-gradient(135deg, var(--ra-header-bg), color-mix(in srgb, var(--ra-header-bg) 78%, #f4c400 22%)) !important;
	color: var(--ra-header-text) !important;
	border-color: color-mix(in srgb, var(--ra-header-bg) 78%, #000000 22%) !important;
	font-weight: 900;
	letter-spacing: .015em;
}

.ra-program-table th *,
.ra-program-table th p {
	color: var(--ra-header-text) !important;
}

.ra-program-table td {
	color: var(--ra-text) !important;
}

.ra-program-table tbody tr:nth-child(even) td:not([rowspan]),
.ra-program-table tbody tr:nth-child(even) th:not([rowspan]) {
	background: var(--ra-stripe);
}

.ra-program-table tbody tr:hover td {
	background: var(--ra-hover) !important;
}

.ra-program-table p {
	margin: 0;
}

.ra-program-table p + p {
	margin-top: 6px;
}

.ra-program-table--compact th,
.ra-program-table--compact td {
	padding: 10px 12px;
}

/* Mejor distribución típica: Hora | Programa | Conductor | Descripción */
.ra-program-table tr > *:nth-child(1) {
	width: 18%;
	white-space: nowrap;
	font-weight: 800;
}

.ra-program-table tr > *:nth-child(2) {
	width: 25%;
}

.ra-program-table tr > *:nth-child(3) {
	width: 22%;
}

.ra-program-table tr > *:nth-child(4) {
	width: 35%;
}

/* Modo noche */
body.theme-dark .ra-program-table-block,
body.dark-mode .ra-program-table-block,
html[data-theme="dark"] .ra-program-table-block {
	--ra-table-bg: var(--ra-night-table-bg);
	--ra-surface: var(--ra-night-surface);
	--ra-soft: var(--ra-night-soft);
	--ra-border: var(--ra-night-border);
	--ra-stripe: var(--ra-night-stripe);
	--ra-text: var(--ra-night-text);
	--ra-muted: rgba(234, 240, 248, .72);
	--ra-hover: rgba(255,255,255,.075);
	--ra-shadow: 0 20px 46px rgba(0, 0, 0, .34);
	--ra-heading-bg: linear-gradient(135deg, color-mix(in srgb, var(--ra-header-bg) 18%, #111827 82%), #0b1220);
}

body.theme-dark .ra-program-table-heading,
body.dark-mode .ra-program-table-heading,
html[data-theme="dark"] .ra-program-table-heading {
	box-shadow: 0 18px 38px rgba(0, 0, 0, .28);
	border-color: var(--ra-border);
}

body.theme-dark .ra-program-table-heading span,
body.dark-mode .ra-program-table-heading span,
html[data-theme="dark"] .ra-program-table-heading span {
	background: rgba(255, 255, 255, .08);
	color: color-mix(in srgb, var(--ra-header-bg) 45%, #ffffff 55%);
}

body.theme-dark .ra-program-table th,
body.dark-mode .ra-program-table th,
html[data-theme="dark"] .ra-program-table th {
	border-color: rgba(255,255,255,.16) !important;
}

body.theme-dark .ra-program-table td,
body.dark-mode .ra-program-table td,
html[data-theme="dark"] .ra-program-table td {
	background: var(--ra-table-bg);
	color: var(--ra-text) !important;
}

/* Integración dentro de Página Programación */
.programming-shortcode-box .ra-program-table-block {
	padding: 0;
}

.programming-shortcode-box .ra-program-table-heading {
	margin: 0 0 14px;
	border-radius: 18px;
}

.programming-shortcode-box .ra-program-table-wrap {
	border-radius: 18px;
}

/* Responsive móvil: convierte cada fila en tarjeta */
@media (max-width: 720px) {
	.ra-program-table-heading {
		padding: 16px;
		border-radius: 18px;
		margin-bottom: 12px;
	}

	.ra-program-table-heading h3 {
		font-size: clamp(1.35rem, 7vw, 1.85rem);
	}

	.ra-program-table--responsive,
	.ra-program-table--responsive tbody,
	.ra-program-table--responsive tr,
	.ra-program-table--responsive th,
	.ra-program-table--responsive td {
		display: block;
		width: 100% !important;
	}

	.ra-program-table-wrap {
		border: 0;
		background: transparent;
		overflow: visible;
	}

	.ra-program-table--responsive {
		min-width: 0;
		border-collapse: separate;
		border-spacing: 0;
		background: transparent;
	}

	.ra-program-table--responsive tr:first-child {
		display: none;
	}

	.ra-program-table--responsive tr {
		margin-bottom: 14px;
		border: 1px solid var(--ra-border);
		border-radius: 18px;
		overflow: hidden;
		background: var(--ra-table-bg);
		box-shadow: 0 12px 28px rgba(2, 12, 27, .07);
	}

	.ra-program-table--responsive td,
	.ra-program-table--responsive th {
		position: relative;
		display: grid;
		grid-template-columns: 116px minmax(0, 1fr);
		gap: 12px;
		align-items: start;
		min-height: 52px;
		padding: 13px 14px;
		border-right: 0;
		border-bottom: 1px solid var(--ra-border);
		background: var(--ra-table-bg);
		white-space: normal !important;
	}

	.ra-program-table--responsive tr > *:last-child {
		border-bottom: 0;
	}

	.ra-program-table--responsive td::before,
	.ra-program-table--responsive th::before {
		content: attr(data-label);
		display: inline-flex;
		align-items: center;
		width: fit-content;
		max-width: 112px;
		padding: 6px 9px;
		border-radius: 999px;
		background: color-mix(in srgb, var(--ra-header-bg) 12%, var(--ra-surface) 88%);
		color: var(--ra-header-bg);
		font-size: .72rem;
		font-weight: 900;
		text-transform: uppercase;
		letter-spacing: .04em;
		line-height: 1.15;
	}

	.ra-program-table--responsive td p,
	.ra-program-table--responsive th p {
		margin: 0;
		line-height: 1.5;
	}

	.ra-program-table--responsive tbody tr:hover td {
		background: var(--ra-table-bg) !important;
	}

	body.theme-dark .ra-program-table--responsive tr,
	body.dark-mode .ra-program-table--responsive tr,
	html[data-theme="dark"] .ra-program-table--responsive tr {
		box-shadow: 0 16px 34px rgba(0,0,0,.28);
	}

	body.theme-dark .ra-program-table--responsive td::before,
	body.dark-mode .ra-program-table--responsive td::before,
	html[data-theme="dark"] .ra-program-table--responsive td::before,
	body.theme-dark .ra-program-table--responsive th::before,
	body.dark-mode .ra-program-table--responsive th::before,
	html[data-theme="dark"] .ra-program-table--responsive th::before {
		background: rgba(255,255,255,.08);
		color: color-mix(in srgb, var(--ra-header-bg) 42%, #ffffff 58%);
	}
}

@media (max-width: 430px) {
	.ra-program-table--responsive td,
	.ra-program-table--responsive th {
		grid-template-columns: 1fr;
		gap: 6px;
	}

	.ra-program-table--responsive td::before,
	.ra-program-table--responsive th::before {
		max-width: none;
	}

	.ra-program-table-heading span {
		font-size: .68rem;
	}
}



/* =========================================================
   Encabezados centrados y en mayúscula v1.0.7
   ========================================================= */
.ra-program-table th,
.ra-program-table th *,
.programming-shortcode-box .ra-program-table th,
.programming-shortcode-box .ra-program-table th * {
	text-align: center !important;
	text-transform: uppercase !important;
	letter-spacing: .055em !important;
	font-weight: 900 !important;
}

.ra-program-table th p {
	width: 100%;
	text-align: center !important;
}

@media (max-width: 720px) {
	.ra-program-table--responsive td::before,
	.ra-program-table--responsive th::before {
		text-transform: uppercase !important;
		text-align: center;
		justify-content: center;
	}
}



/* Refuerzo de estilos guardados v1.0.8 */
.ra-program-table-block .ra-program-table-wrap {
	border-color: var(--ra-border) !important;
	border-radius: var(--ra-radius) !important;
}

.ra-program-table-block .ra-program-table {
	font-size: var(--ra-font-size) !important;
}

.ra-program-table-block .ra-program-table td {
	color: var(--ra-text) !important;
	border-color: var(--ra-border) !important;
}

.ra-program-table-block .ra-program-table th {
	background: linear-gradient(135deg, var(--ra-header-bg), color-mix(in srgb, var(--ra-header-bg) 78%, #f4c400 22%)) !important;
	color: var(--ra-header-text) !important;
}

.ra-program-table-block .ra-program-table tbody tr:nth-child(even) td:not([rowspan]) {
	background: var(--ra-stripe) !important;
}

.ra-program-table-block .ra-program-table--compact th,
.ra-program-table-block .ra-program-table--compact td {
	padding: 10px 12px !important;
}



/* Ocultar filas vacías y corregir tarjetas móviles v1.0.9 */
@media (max-width: 720px) {
	.ra-program-table--responsive tr:empty {
		display: none !important;
	}

	.ra-program-table--responsive tr {
		min-height: 0;
	}

	.ra-program-table--responsive td:empty,
	.ra-program-table--responsive th:empty {
		display: none !important;
	}
}


/* Ajuste de ancho en móvil v1.1.0 */
@media (max-width: 720px) {
	.ra-program-table-block,
	.ra-program-table-wrap,
	.ra-program-table--responsive,
	.ra-program-table--responsive tbody,
	.ra-program-table--responsive tr,
	.ra-program-table--responsive td,
	.ra-program-table--responsive th {
		box-sizing: border-box;
		max-width: 100%;
	}

	.ra-program-table-block {
		overflow: hidden;
	}

	.ra-program-table--responsive tr {
		width: 100% !important;
		margin-left: 0;
		margin-right: 0;
	}

	.ra-program-table--responsive td,
	.ra-program-table--responsive th {
		width: 100% !important;
		max-width: 100% !important;
		overflow-wrap: anywhere;
		word-break: break-word;
	}
}



/* =========================================================
   Mobile card elegante tipo app v1.1.1
   ========================================================= */
@media (max-width: 720px) {
	.ra-program-table-block {
		width: 100% !important;
		max-width: 100% !important;
		padding: 0 !important;
		overflow: hidden !important;
	}

	.ra-program-table-wrap {
		width: 100% !important;
		max-width: 100% !important;
		border: 0 !important;
		border-radius: 0 !important;
		background: transparent !important;
		overflow: visible !important;
	}

	.ra-program-table--responsive,
	.ra-program-table--responsive tbody {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		background: transparent !important;
	}

	.ra-program-table--responsive tr:first-child {
		display: none !important;
	}

	.ra-program-table--responsive tr {
		position: relative;
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 0 14px !important;
		padding: 0 !important;
		border: 1px solid var(--ra-border) !important;
		border-radius: 22px !important;
		background:
			linear-gradient(180deg, color-mix(in srgb, var(--ra-table-bg) 94%, var(--ra-header-bg) 6%), var(--ra-table-bg)) !important;
		box-shadow: 0 14px 34px rgba(2, 12, 27, .10) !important;
		overflow: hidden !important;
		box-sizing: border-box !important;
	}

	.ra-program-table--responsive tr::before {
		content: "";
		position: absolute;
		inset: 0 auto 0 0;
		width: 5px;
		background: linear-gradient(180deg, var(--ra-header-bg), color-mix(in srgb, var(--ra-header-bg) 55%, #f4c400 45%));
		z-index: 1;
	}

	.ra-program-table--responsive td,
	.ra-program-table--responsive th {
		position: relative;
		z-index: 2;
		display: grid !important;
		grid-template-columns: minmax(90px, 34%) minmax(0, 1fr) !important;
		align-items: center !important;
		gap: 10px !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		min-height: 0 !important;
		padding: 11px 14px 11px 18px !important;
		border-right: 0 !important;
		border-bottom: 1px solid var(--ra-border) !important;
		background: transparent !important;
		box-sizing: border-box !important;
		white-space: normal !important;
		overflow-wrap: anywhere !important;
		word-break: break-word !important;
	}

	.ra-program-table--responsive tr > *:last-child {
		border-bottom: 0 !important;
	}

	.ra-program-table--responsive td::before,
	.ra-program-table--responsive th::before {
		content: attr(data-label);
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		width: fit-content !important;
		max-width: 100% !important;
		padding: 6px 9px !important;
		border-radius: 999px !important;
		background: color-mix(in srgb, var(--ra-header-bg) 12%, var(--ra-surface) 88%) !important;
		color: var(--ra-header-bg) !important;
		font-size: .68rem !important;
		line-height: 1 !important;
		font-weight: 900 !important;
		text-transform: uppercase !important;
		letter-spacing: .045em !important;
		text-align: center !important;
	}

	.ra-program-table--responsive td p,
	.ra-program-table--responsive th p {
		margin: 0 !important;
		min-width: 0 !important;
		color: var(--ra-text) !important;
		font-size: .94rem !important;
		line-height: 1.45 !important;
		font-weight: 500 !important;
	}

	/* La primera celda, normalmente HORA, se convierte en cabecera visual de la card */
	.ra-program-table--responsive tr > td:first-child,
	.ra-program-table--responsive tr > th:first-child {
		display: flex !important;
		align-items: center !important;
		justify-content: space-between !important;
		gap: 12px !important;
		padding: 14px 15px 13px 18px !important;
		background:
			linear-gradient(135deg, color-mix(in srgb, var(--ra-header-bg) 16%, transparent), color-mix(in srgb, var(--ra-header-bg) 5%, transparent)) !important;
		border-bottom: 1px solid color-mix(in srgb, var(--ra-border) 70%, var(--ra-header-bg) 30%) !important;
	}

	.ra-program-table--responsive tr > td:first-child::before,
	.ra-program-table--responsive tr > th:first-child::before {
		background: var(--ra-header-bg) !important;
		color: var(--ra-header-text) !important;
		box-shadow: 0 8px 18px color-mix(in srgb, var(--ra-header-bg) 28%, transparent) !important;
	}

	.ra-program-table--responsive tr > td:first-child p,
	.ra-program-table--responsive tr > th:first-child p {
		margin-left: auto !important;
		text-align: right !important;
		font-size: 1rem !important;
		font-weight: 900 !important;
		letter-spacing: .01em !important;
		color: var(--ra-text) !important;
	}

	/* Programa más destacado */
	.ra-program-table--responsive tr > td:nth-child(2) p,
	.ra-program-table--responsive tr > th:nth-child(2) p {
		font-weight: 800 !important;
		color: var(--ra-text) !important;
	}

	.ra-program-table--responsive tbody tr:hover td {
		background: transparent !important;
	}

	body.theme-dark .ra-program-table--responsive tr,
	body.dark-mode .ra-program-table--responsive tr,
	html[data-theme="dark"] .ra-program-table--responsive tr {
		background:
			linear-gradient(180deg, color-mix(in srgb, var(--ra-table-bg) 90%, var(--ra-header-bg) 10%), var(--ra-table-bg)) !important;
		box-shadow: 0 16px 34px rgba(0, 0, 0, .34) !important;
	}

	body.theme-dark .ra-program-table--responsive td::before,
	body.dark-mode .ra-program-table--responsive td::before,
	html[data-theme="dark"] .ra-program-table--responsive td::before,
	body.theme-dark .ra-program-table--responsive th::before,
	body.dark-mode .ra-program-table--responsive th::before,
	html[data-theme="dark"] .ra-program-table--responsive th::before {
		background: rgba(255, 255, 255, .08) !important;
		color: color-mix(in srgb, var(--ra-header-bg) 42%, #ffffff 58%) !important;
	}
}

@media (max-width: 430px) {
	.ra-program-table--responsive td,
	.ra-program-table--responsive th {
		grid-template-columns: 1fr !important;
		gap: 7px !important;
		padding: 11px 13px 11px 18px !important;
	}

	.ra-program-table--responsive tr > td:first-child,
	.ra-program-table--responsive tr > th:first-child {
		display: grid !important;
		grid-template-columns: 1fr !important;
		align-items: start !important;
	}

	.ra-program-table--responsive tr > td:first-child p,
	.ra-program-table--responsive tr > th:first-child p {
		margin-left: 0 !important;
		text-align: left !important;
	}

	.ra-program-table--responsive td::before,
	.ra-program-table--responsive th::before {
		justify-content: flex-start !important;
	}
}

