/* =========================================================
   RD Tablas - estilos frontend
   Todo scopeado a .rd-tabla-wrap / .rd-aviso / .rd-cta
   Variables con fallback al design system del sitio.
   ========================================================= */

.rd-tabla-wrap,
.rd-aviso,
.rd-cta {
	--rdt-primario:        var(--color-primario, #14595a);
	--rdt-secundario:      var(--color-secundario, #1f8a6d);
	--rdt-claro:           var(--color-claro, #f2f7f8);
	--rdt-texto:           var(--color-texto, #2b3a42);
	--rdt-blanco:          var(--color-blanco, #ffffff);

	--rdt-borde:           #dbe4ea;
	--rdt-cabecera-bg:     #e9f0f4;
	--rdt-cabecera-texto:  #16323d;
	--rdt-zebra:           #f7fafb;
	--rdt-destacado:       var(--rdt-secundario);

	--rdt-radio:           10px;
	--rdt-fuente:          inherit;
	--rdt-fuente-titulo:   inherit;
	--rdt-tam:             15px;
	--rdt-pad-y:           12px;
	--rdt-pad-x:           16px;

	box-sizing: border-box;
}

.rd-tabla-wrap *,
.rd-aviso *,
.rd-cta * {
	box-sizing: border-box;
}

/* ---------------------------------------------------------
   TABLA
   --------------------------------------------------------- */

.rd-tabla-wrap {
	margin: 0 0 30px !important;
	padding: 0;
	font-family: var(--rdt-fuente);
	color: var(--rdt-texto);
}

.rd-tabla-wrap .rd-tabla__titulo {
	font-family: var(--rdt-fuente-titulo);
	font-size: 1.05em;
	font-weight: 700;
	line-height: 1.35;
	color: var(--rdt-primario);
	margin: 0 0 10px;
	padding: 0;
	text-align: left;
}

.rd-tabla-wrap .rd-tabla__scroll {
	width: 100%;
	border: 1px solid var(--rdt-borde);
	border-radius: var(--rdt-radio);
	overflow: hidden;
}

.rd-tabla-wrap table.rd-tabla {
	width: 100% !important;
	margin: 0 !important;
	border: 0 !important;
	border-collapse: collapse !important;
	border-spacing: 0;
	background: var(--rdt-blanco);
	font-size: var(--rdt-tam);
	line-height: 1.45;
	table-layout: auto;
}

.rd-tabla-wrap table.rd-tabla th,
.rd-tabla-wrap table.rd-tabla td {
	padding: var(--rdt-pad-y) var(--rdt-pad-x) !important;
	border: 0 !important;
	border-bottom: 1px solid var(--rdt-borde) !important;
	text-align: left;
	vertical-align: middle;
	background: transparent;
	color: inherit;
	word-break: normal;
	overflow-wrap: anywhere;
}

.rd-tabla-wrap table.rd-tabla thead th {
	background: var(--rdt-cabecera-bg) !important;
	color: var(--rdt-cabecera-texto);
	font-weight: 700;
	font-size: 0.94em;
	letter-spacing: 0.01em;
	border-bottom: 1px solid var(--rdt-borde) !important;
}

.rd-tabla-wrap table.rd-tabla tbody tr:last-child th,
.rd-tabla-wrap table.rd-tabla tbody tr:last-child td {
	border-bottom: 0 !important;
}

.rd-tabla--zebra tbody tr:nth-child(even) td {
	background: var(--rdt-zebra) !important;
}

.rd-tabla--compacta {
	--rdt-pad-y: 8px;
	--rdt-pad-x: 12px;
	--rdt-tam: 14px;
}

/* Primera columna en negrita */
.rd-tabla--col1 tbody td:first-child {
	font-weight: 700;
}

/* Columnas destacadas (importes, cifras...) */
.rd-tabla-wrap table.rd-tabla td.rd-destacada {
	color: var(--rdt-destacado);
	font-weight: 700;
}

/* Alineaciones */
.rd-tabla-wrap table.rd-tabla .rd-al-izq    { text-align: left; }
.rd-tabla-wrap table.rd-tabla .rd-al-centro { text-align: center; }
.rd-tabla-wrap table.rd-tabla .rd-al-der    { text-align: right; }

.rd-tabla-wrap table.rd-tabla a {
	color: var(--rdt-primario);
	text-decoration: underline;
}

.rd-tabla-wrap .rd-tabla__nota {
	margin: 10px 0 0 !important;
	padding: 0;
	font-size: 0.85em;
	font-style: italic;
	line-height: 1.5;
	color: #5d6f79;
}

/* --- Variante "marca": cabecera con el color corporativo --- */
.rd-tabla-wrap--marca table.rd-tabla thead th {
	background: var(--rdt-primario) !important;
	color: var(--rdt-blanco);
	border-bottom: 0 !important;
}

.rd-tabla-wrap--marca .rd-tabla__scroll {
	border-color: var(--rdt-primario);
}

/* --- Variante "minimal": sin caja exterior --- */
.rd-tabla-wrap--minimal .rd-tabla__scroll {
	border: 0;
	border-radius: 0;
	border-top: 2px solid var(--rdt-primario);
}

.rd-tabla-wrap--minimal table.rd-tabla thead th {
	background: transparent !important;
	color: var(--rdt-primario);
}

/* ---------------------------------------------------------
   RESPONSIVE
   --------------------------------------------------------- */

/* Modo scroll horizontal */
@media (max-width: 767px) {
	.rd-w--scroll .rd-tabla__scroll {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.rd-tabla--scroll {
		min-width: 560px;
	}
}

/* Modo tarjetas: cada fila se convierte en una ficha */
@media (max-width: 767px) {
	.rd-w--tarjetas .rd-tabla__scroll {
		border: 0;
		border-radius: 0;
		overflow: visible;
	}

	.rd-tabla--tarjetas,
	.rd-tabla--tarjetas tbody {
		display: block;
		width: 100% !important;
	}

	.rd-tabla--tarjetas thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}

	.rd-tabla--tarjetas tbody tr {
		display: block;
		margin: 0 0 12px;
		border: 1px solid var(--rdt-borde);
		border-radius: var(--rdt-radio);
		overflow: hidden;
		background: var(--rdt-blanco);
	}

	.rd-tabla--tarjetas tbody tr:last-child {
		margin-bottom: 0;
	}

	.rd-tabla-wrap table.rd-tabla--tarjetas tbody td {
		display: flex;
		justify-content: space-between;
		align-items: baseline;
		gap: 14px;
		width: 100%;
		padding: 10px 14px !important;
		border-bottom: 1px solid var(--rdt-borde) !important;
		text-align: right;
	}

	.rd-tabla-wrap table.rd-tabla--tarjetas tbody tr td:last-child {
		border-bottom: 0 !important;
	}

	.rd-tabla--tarjetas tbody td[data-rdlabel]::before {
		content: attr(data-rdlabel);
		flex: 0 0 42%;
		text-align: left;
		font-weight: 600;
		font-size: 0.85em;
		color: var(--rdt-cabecera-texto);
		opacity: 0.85;
	}

	/* La primera celda hace de cabecera de la ficha */
	.rd-tabla-wrap table.rd-tabla--tarjetas tbody tr td:first-child {
		display: block;
		text-align: left;
		background: var(--rdt-cabecera-bg) !important;
		font-weight: 700;
	}

	.rd-tabla--tarjetas tbody tr td:first-child::before {
		display: none;
	}

	.rd-tabla--zebra.rd-tabla--tarjetas tbody tr:nth-child(even) td {
		background: var(--rdt-blanco) !important;
	}

	.rd-tabla--zebra.rd-tabla--tarjetas tbody tr:nth-child(even) td:first-child {
		background: var(--rdt-cabecera-bg) !important;
	}
}

/* ---------------------------------------------------------
   AVISOS / CAJAS
   --------------------------------------------------------- */

.rd-aviso {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	margin: 0 0 26px !important;
	padding: 16px 18px;
	border-radius: var(--rdt-radio);
	border-left: 4px solid var(--rdt-primario);
	background: var(--rdt-claro);
	color: var(--rdt-texto);
	font-size: 15px;
	line-height: 1.6;
}

.rd-aviso__icono {
	flex: 0 0 auto;
	font-size: 20px;
	line-height: 1.3;
}

.rd-aviso__cuerpo {
	flex: 1 1 auto;
	min-width: 0;
}

.rd-aviso .rd-aviso__titulo {
	margin: 0 0 4px !important;
	padding: 0;
	font-weight: 700;
	line-height: 1.4;
}

.rd-aviso .rd-aviso__texto p {
	margin: 0 0 10px !important;
	padding: 0;
}

.rd-aviso .rd-aviso__texto p:last-child {
	margin-bottom: 0 !important;
}

.rd-aviso a {
	color: inherit;
	text-decoration: underline;
	font-weight: 600;
}

.rd-aviso--info    { background: #eef5fa; border-left-color: #2b7bb9; }
.rd-aviso--info    .rd-aviso__titulo { color: #1d5b8c; }

.rd-aviso--alerta  { background: #fdf6e6; border-left-color: #d99a15; }
.rd-aviso--alerta  .rd-aviso__titulo { color: #96690a; }

.rd-aviso--ok      { background: #edf7f1; border-left-color: #2c9c6a; }
.rd-aviso--ok      .rd-aviso__titulo { color: #1d7250; }

.rd-aviso--dato    { background: #f4f1fb; border-left-color: #6b52c0; }
.rd-aviso--dato    .rd-aviso__titulo { color: #4c399a; }

.rd-aviso--urgente { background: #fdeeee; border-left-color: #cf3b3b; }
.rd-aviso--urgente .rd-aviso__titulo { color: #a32626; }

/* ---------------------------------------------------------
   CTA
   --------------------------------------------------------- */

.rd-cta {
	margin: 0 0 30px !important;
	padding: 24px 26px;
	border-radius: var(--rdt-radio);
	background: var(--rdt-primario);
	color: var(--rdt-blanco);
	text-align: center;
	font-size: 15px;
	line-height: 1.6;
}

.rd-cta .rd-cta__titulo {
	margin: 0 0 8px !important;
	padding: 0;
	font-family: var(--rdt-fuente-titulo);
	font-size: 1.25em;
	font-weight: 700;
	line-height: 1.3;
	color: var(--rdt-blanco);
}

.rd-cta .rd-cta__texto p {
	margin: 0 0 10px !important;
	padding: 0;
	color: var(--rdt-blanco);
	opacity: 0.94;
}

.rd-cta .rd-cta__texto p:last-child {
	margin-bottom: 0 !important;
}

.rd-cta .rd-cta__boton {
	display: inline-block;
	margin-top: 16px;
	padding: 12px 26px;
	border-radius: 999px;
	background: var(--rdt-blanco);
	color: var(--rdt-primario) !important;
	font-weight: 700;
	text-decoration: none !important;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.rd-cta .rd-cta__boton:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
}

@media (max-width: 767px) {
	.rd-cta { padding: 20px 18px; }
	.rd-aviso { padding: 14px 15px; gap: 10px; }
}

/* ---------------------------------------------------------
   IMPRESIÓN
   --------------------------------------------------------- */

@media print {
	.rd-tabla-wrap table.rd-tabla thead th {
		background: #eee !important;
		color: #000;
	}
	.rd-tabla-wrap .rd-tabla__scroll { overflow: visible; }
}
