/* =====================================================================
   moderno.css — rediseño del panel de gestión con la identidad de
   florentino-robledillo.com (verde encina, oro, crema; Red Hat Display +
   Source Serif 4).

   Se carga DESPUÉS de estilos.css en todas las páginas (includes/menu.php
   lo enlaza, y headers.php en las que lo usan). Por eso aquí se redefinen
   también las clases heredadas (.Enc, .EncTabla, .FilaTabla, .TituloTabla,
   .mensaje, .opciones, .Filtros, .navh...): así las páginas antiguas
   (partes, facturas, administración...) cambian de aspecto sin tocar su
   HTML. No se tocan ids ni clases que use JavaScript.
   ===================================================================== */

:root {
	--mod-fuente: "Red Hat Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--mod-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
	--mod-fondo: #F4F3EE;
	--mod-borde: #E4E2DC;
	--mod-borde-fuerte: #D3D0C6;
	--mod-texto: #1D2622;
	--mod-texto-sec: #5F6B60;
	--mod-texto-suave: #8A928B;
	--mod-radio: 8px;
	--mod-radio-card: 14px;
	--mod-acento: #2F5240;
	--mod-acento-oscuro: #1F3A2C;
	--mod-acento-suave: #E6ECE3;
	--mod-dorado: #E3A72F;
	--mod-dorado-oscuro: #C98E1B;
	--mod-dorado-suave: #FBF0D9;
	--mod-crema: #F1EFE9;
	--mod-salvia: #DCE1CF;
	--mod-salvia-suave: #EEF1E7;
	--mod-rojo: #B3261E;
	--mod-rojo-suave: #F8E4E1;
	--mod-azul: #2F6690;
	--mod-azul-suave: #E3EEF7;
	--mod-sombra: 0 1px 2px rgba(29, 38, 34, .05), 0 2px 8px rgba(29, 38, 34, .05);
	--sb-ancho: 236px;
	/* Un color por casa (etiquetas, planning, calendario) */
	--casa-cuco: #B5573B;
	--casa-berrueco: #3E6A8A;
	--casa-pancho: #6B8E3D;
	--casa-moros: #7A4E7E;
	--casa-doscasas: #A87A1E;
	--casa-otra: #5F6B60;
}

/* ---------------------------------------------------------------------
   1. Estructura: fondo, barra lateral, barra superior, contenido y pie
   --------------------------------------------------------------------- */
html, body { height: auto; min-height: 100%; }
/* Letra grande del móvil (accesibilidad): todos los tamaños de letra van en rem, relativos al tamaño base del
   navegador, que en Android sigue el ajuste de «tamaño de fuente» del sistema. Safari de iPhone/iPad solo aplica
   el «tamaño del texto» del sistema si se pide con -apple-system-body; se limita a iOS (-webkit-touch-callout)
   porque en el Mac ese tamaño es de 13 px y lo encogería todo. */
@supports (font: -apple-system-body) and (-webkit-touch-callout: none) {
	html { font: -apple-system-body; line-height: normal; }
}
body {
	margin: 0;
	background: var(--mod-fondo);
	font-family: var(--mod-fuente);
	font-size: 0.9375rem;
	color: var(--mod-texto);
	-webkit-font-smoothing: antialiased;
}
#background { display: none !important; }
a { color: var(--mod-acento); }

.Cuerpo {
	margin: 0;
	background: transparent;
	box-shadow: none;
	min-height: calc(100vh - 60px);
	height: auto !important;
}
.Contenido {
	font-family: var(--mod-fuente);
	color: var(--mod-texto);
	border-right: 0;
	margin: 0;
	padding: 0 28px 36px;
	min-height: 0;
	height: auto;
	position: relative;
}
.BarraCab { display: none; } /* usuario y salir van ahora en la barra superior */

/* Barra lateral */
.nav.sb {
	background: var(--mod-acento-oscuro);
	color: #DCE1CF;
	font-family: var(--mod-fuente);
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.3;
	text-align: left;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	padding: 18px 12px 14px;
	margin: 0;
	float: none;
	width: var(--sb-ancho);
	scrollbar-width: thin;
	scrollbar-color: rgba(255,255,255,.2) transparent;
}
.nav.sb .sb-marca {
	display: block;
	padding: 4px 12px 18px;
	margin-bottom: 10px;
	border-bottom: 1px solid rgba(255,255,255,.09);
	text-decoration: none;
}
.nav.sb .sb-marca-nombre {
	display: block;
	font-family: var(--mod-serif);
	font-style: italic;
	font-weight: 700;
	font-size: 1.6875rem;
	line-height: 1.1;
	color: #fff;
}
.nav.sb .sb-marca-sub {
	display: block;
	margin-top: 4px;
	font-size: 0.6563rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--mod-dorado);
}
.nav.sb .menu { list-style: none; margin: 0; padding: 0; flex: 1; }
.nav.sb .menu li { margin: 0; padding: 0; display: block; }
.nav.sb .menu li a,
.nav.sb .menu summary,
.nav.sb .sb-pie a {
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 9px 12px;
	margin: 1px 0;
	border-radius: 8px;
	background: none;
	color: #DCE1CF;
	text-decoration: none;
	font-weight: 500;
	cursor: pointer;
	transition: background-color .15s, color .15s;
}
.nav.sb .menu li a i,
.nav.sb .menu summary i,
.nav.sb .sb-pie a i { color: #9DB09E; font-size: 0.875rem; width: 18px; text-align: center; flex: none; }
.nav.sb .menu li a:hover,
.nav.sb .menu summary:hover,
.nav.sb .sb-pie a:hover { background: rgba(255,255,255,.08); color: #fff; }
.nav.sb .menu li a:active { background: rgba(255,255,255,.12); color: #fff; }
.nav.sb .menu li a.activo {
	background: rgba(227,167,47,.15);
	color: #fff;
	box-shadow: inset 3px 0 0 var(--mod-dorado);
}
.nav.sb .menu li a.activo i { color: var(--mod-dorado); }
.nav.sb .menu summary { list-style: none; }
.nav.sb .menu summary::-webkit-details-marker { display: none; }
.nav.sb .menu summary::after {
	content: "\f078";
	font-family: "Font Awesome 5 Pro", "Font Awesome 5 Free";
	font-weight: 900;
	font-size: 0.5625rem;
	margin-left: auto;
	opacity: .6;
	transition: transform .2s;
}
.nav.sb .menu details[open] > summary::after { transform: rotate(180deg); }
.nav.sb .menu ul {
	height: auto;
	overflow: visible;
	transition: none;
	list-style: none;
	margin: 0 0 6px;
	padding: 0 0 0 14px;
	border-left: 1px solid rgba(255,255,255,.08);
	margin-left: 20px;
	position: static;
	text-align: left;
	width: auto;
	max-height: none;
}
.nav.sb .menu ul li a { padding: 7px 10px; font-size: 0.8438rem; background: none; color: #C5CFC2; }
.nav.sb .menu ul li a i { font-size: 0.75rem; }
.nav.sb .menu ul li a:hover { background: rgba(255,255,255,.08); color: #fff; }
.nav.sb .sb-pie {
	border-top: 1px solid rgba(255,255,255,.09);
	margin-top: 12px;
	padding-top: 10px;
}
.nav.sb .sb-pie a { font-size: 0.8125rem; color: #B7C3B5; }

@media only screen and (min-width: 1001px) {
	body { padding-left: var(--sb-ancho); }
	.nav.sb {
		position: fixed;
		top: 0;
		left: 0;
		bottom: 0;
		overflow-y: auto;
		z-index: 30;
	}
}

/* Barra superior */
.Cabecera.topbar {
	display: flex;
	align-items: center;
	gap: 16px;
	position: sticky;
	top: 0;
	z-index: 25;
	box-sizing: border-box;
	width: auto;
	max-width: none;
	height: 64px;
	min-height: 64px;
	margin: 0 -28px 22px;
	padding: 0 28px;
	background: rgba(255,255,255,.94);
	-webkit-backdrop-filter: saturate(1.4) blur(8px);
	backdrop-filter: saturate(1.4) blur(8px);
	border-bottom: 1px solid var(--mod-borde);
	font-family: var(--mod-fuente);
	font-size: 0.875rem;
	font-weight: 500;
	text-align: left;
	color: var(--mod-texto);
}
.Cabecera .topbar-logo { flex: none; display: block; }
.Cabecera .topbar-logo img { height: 32px; width: auto; display: block; float: none; margin: 0; }
.topbar-nav {
	display: flex;
	gap: 2px;
	flex: 1;
	min-width: 0;
	overflow-x: auto;
	scrollbar-width: none;
}
.topbar-nav::-webkit-scrollbar { display: none; }
.topbar-nav a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	border-radius: 999px;
	color: var(--mod-texto-sec);
	text-decoration: none;
	white-space: nowrap;
	transition: background-color .15s, color .15s;
}
.topbar-nav a i { font-size: 0.8125rem; opacity: .85; }
.topbar-nav a:hover { background: var(--mod-crema); color: var(--mod-texto); }
.topbar-nav a.activo { background: var(--mod-acento-suave); color: var(--mod-acento); font-weight: 600; }
.topbar-usuario {
	display: flex;
	align-items: center;
	gap: 9px;
	flex: none;
	padding-left: 14px;
	border-left: 1px solid var(--mod-borde);
}
.topbar-avatar {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--mod-acento);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 0.8125rem;
}
.topbar-usuario-nombre { font-size: 0.8438rem; color: var(--mod-texto); }
.topbar-salir { color: var(--mod-texto-suave); padding: 6px; border-radius: 6px; }
.topbar-salir:hover { color: var(--mod-rojo); background: var(--mod-rojo-suave); }
.Cabecera .nav-mobile {
	display: none;
	position: static;
	flex: none;
	width: 40px;
	height: 40px;
	padding: 0;
	margin: 0;
	border: 0;
	border-radius: 10px;
	background: var(--mod-crema);
	align-items: center;
	justify-content: center;
	cursor: pointer;
}
.Cabecera .nav-mobile span,
.Cabecera .nav-mobile span::before,
.Cabecera .nav-mobile span::after {
	display: block;
	width: 18px;
	height: 2px;
	border-radius: 2px;
	background: var(--mod-texto);
	position: relative;
	content: "";
}
.Cabecera .nav-mobile span::before { position: absolute; top: -6px; }
.Cabecera .nav-mobile span::after { position: absolute; top: 6px; }

/* Pie */
.FinalPagina {
	height: auto;
	margin: 0;
	padding: 6px 28px 26px;
	border: 0;
	background: transparent;
	font-family: var(--mod-fuente);
	font-size: 0.7813rem;
	color: var(--mod-texto-suave);
	text-align: center;
}
.FinalPagina a { color: var(--mod-texto-sec); text-decoration: none; }
.FinalPagina a:hover { color: var(--mod-acento); }
.FinalPagina-sep { margin: 0 6px; }

/* ---------------------------------------------------------------------
   2. Componentes comunes: botones, píldoras, tarjetas, casas
   --------------------------------------------------------------------- */
.btn {
	display: inline-flex;
	width: auto;
	margin: 0;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 9px 18px;
	border-radius: 999px;
	border: 1px solid transparent;
	font-family: var(--mod-fuente);
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color .15s, border-color .15s, color .15s, box-shadow .15s;
	box-sizing: border-box;
}
.btn i { font-size: .95em; }
.btn-verde { background: var(--mod-acento); color: #fff; }
.btn-verde:hover { background: var(--mod-acento-oscuro); color: #fff; }
.btn-dorado { background: var(--mod-dorado); color: var(--mod-texto); }
.btn-dorado:hover { background: var(--mod-dorado-oscuro); color: var(--mod-texto); }
.btn-borde { background: #fff; border-color: var(--mod-borde-fuerte); color: var(--mod-texto); }
.btn-borde:hover { border-color: var(--mod-acento); color: var(--mod-acento); }
.btn-peligro { background: #fff; border-color: #E8C4BF; color: var(--mod-rojo); }
.btn-peligro:hover { background: var(--mod-rojo-suave); }
.btn-sm { padding: 6px 12px; font-size: 0.8125rem; }
.btn-icono { width: 36px; height: 36px; padding: 0; }
.btn-bloque { width: 100%; }

.pill {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.4;
	white-space: nowrap;
	text-decoration: none;
}
.pill-ok { background: #E1EFD6; color: #2D5A12; }
.pill-aviso { background: var(--mod-dorado-suave); color: #7A5200; }
.pill-error { background: var(--mod-rojo-suave); color: var(--mod-rojo); }
.pill-info { background: var(--mod-azul-suave); color: var(--mod-azul); }
.pill-neutro { background: var(--mod-crema); color: var(--mod-texto-sec); }

/* Estado de la reserva (EstadoPill() en includes/functions.php) */
.estado-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 3px 11px 3px 9px;
	border-radius: 999px;
	font-size: 0.7813rem;
	font-weight: 600;
	line-height: 1.4;
	white-space: nowrap;
	background: var(--mod-crema);
	color: var(--mod-texto-sec);
}
.estado-pill::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; flex: none; }
.estado-pill.estado-1 { background: var(--mod-dorado-suave); color: #8A5A00; }
.estado-pill.estado-2 { background: #FDE9D2; color: #A1520C; }
.estado-pill.estado-3 { background: var(--mod-azul-suave); color: var(--mod-azul); }
.estado-pill.estado-4 { background: #E1EFD6; color: #2D5A12; }
.estado-pill.estado-5 { background: var(--mod-acento-suave); color: var(--mod-acento); }
.estado-pill.estado-6 { background: #EDE7F3; color: #5B3F7A; }
.estado-pill.estado-8 { background: var(--mod-rojo-suave); color: var(--mod-rojo); }

/* Etiqueta de casa (CasaChip()) */
.casa-chip {
	--c: var(--casa-otra);
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 4px 11px 4px 8px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--c) 12%, #fff);
	color: var(--c);
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1.3;
	white-space: nowrap;
}
.casa-chip i {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--c);
	color: #fff;
	font-size: 0.625rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.casa-cuco { --c: var(--casa-cuco); }
.casa-berrueco { --c: var(--casa-berrueco); }
.casa-pancho { --c: var(--casa-pancho); }
.casa-moros { --c: var(--casa-moros); }
.casa-doscasas { --c: var(--casa-doscasas); }
.casa-otra { --c: var(--casa-otra); }

/* Tarjeta genérica */
.card {
	background: #fff;
	border: 1px solid var(--mod-borde);
	border-radius: var(--mod-radio-card);
	box-shadow: var(--mod-sombra);
	padding: 18px 20px;
	box-sizing: border-box;
}
.card-titulo {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 14px;
	font-family: var(--mod-serif);
	font-weight: 600;
	font-size: 1.125rem;
	color: var(--mod-acento);
}
.card-titulo .card-accion { margin-left: auto; font-family: var(--mod-fuente); }

/* Lista etiqueta / valor (como las tablas de los correos de la web) */
.dl-filas { margin: 0; }
.dl-fila {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 14px;
	padding: 9px 0;
	border-bottom: 1px solid var(--mod-salvia-suave);
	font-size: 0.875rem;
}
.dl-fila:last-child { border-bottom: 0; }
.dl-fila > dt, .dl-fila > .dl-etq { color: var(--mod-texto-sec); flex: none; margin: 0; }
.dl-fila > dd, .dl-fila > .dl-val { margin: 0; text-align: right; font-weight: 600; color: var(--mod-texto); min-width: 0; overflow-wrap: anywhere; }
.dl-fila select, .dl-fila input[type=text] { max-width: 220px; }

/* Encabezado de página (sustituye a la barra de título en las páginas rediseñadas) */
.pagina-cab {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px 16px;
	margin: 0 0 18px;
}
.pagina-cab h1 {
	margin: 0;
	font-family: var(--mod-serif);
	font-weight: 600;
	font-size: 1.625rem;
	line-height: 1.2;
	color: var(--mod-texto);
}
.pagina-cab .pagina-sub { color: var(--mod-texto-sec); font-size: 0.875rem; }
.pagina-cab .pagina-acciones { margin-left: auto; display: flex; flex-wrap: wrap; gap: 8px; }

/* ---------------------------------------------------------------------
   3. Clases heredadas de estilos.css, con el aspecto nuevo
   --------------------------------------------------------------------- */
.Contenido .Titulos {
	font-family: var(--mod-serif);
	font-style: normal;
	font-weight: 600;
	font-size: 1.625rem;
	line-height: 1.2;
	color: var(--mod-texto);
	text-align: left;
	margin: 0 0 18px;
}

/* Cabeceras de sección: antes barras granate; ahora título de tarjeta */
.Contenido .Enc {
	background: transparent;
	color: var(--mod-acento);
	font-family: var(--mod-serif);
	font-style: normal;
	font-weight: 600;
	font-size: 1.125rem;
	line-height: 1.3;
	text-align: left;
	padding: 0 0 10px;
	margin: 0 0 12px;
	border-radius: 0;
	border-bottom: 1px solid var(--mod-borde);
}
.Contenido .Enc .close {
	background: var(--mod-crema);
	color: var(--mod-texto-sec);
	font-family: var(--mod-fuente);
	font-size: 0.75rem;
	padding: 2px 9px;
	border-radius: 999px;
	cursor: pointer;
}
#DatosReserva, #DatosCliente, #ImporteReserva, .InfoReserva {
	background: #fff;
	border: 1px solid var(--mod-borde);
	border-radius: var(--mod-radio-card);
	box-shadow: var(--mod-sombra);
	box-sizing: border-box;
	padding: 16px 18px;
}
#ImporteReserva > #DatosReserva, .InfoReserva > #DatosReserva,
#ImporteReserva > #DatosCliente, .InfoReserva > #DatosCliente { border: 0; box-shadow: none; padding: 0; }

/* Tablas de detalle (etiqueta a la izquierda, valor a la derecha) */
.TablaDet, .Tabla { font-family: var(--mod-fuente); font-size: 0.875rem; border-collapse: collapse; border-spacing: 0; }
.EncTabla {
	background-color: transparent;
	color: var(--mod-texto-sec);
	font-family: var(--mod-fuente);
	font-weight: 500;
	font-size: 0.8438rem;
	text-align: left;
	line-height: 1.4;
	padding: 9px 12px 9px 0;
	border-bottom: 1px solid var(--mod-salvia-suave);
	vertical-align: top;
}
tr.EncTabla, tr.EncTabla td, .row.EncTabla {
	background: var(--mod-crema);
	color: var(--mod-texto-sec);
	font-weight: 600;
	font-size: 0.75rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	padding: 9px 10px;
	border-bottom: 0;
}
.FilaTabla, .FilaTablaR {
	background-color: #fff;
	font-family: var(--mod-fuente);
	font-size: 0.875rem;
	line-height: 1.5;
	color: var(--mod-texto);
	padding: 9px 10px;
	border-bottom: 1px solid var(--mod-salvia-suave);
	vertical-align: middle;
}
tr.FilaTabla td { border-bottom: 1px solid var(--mod-salvia-suave); padding: 9px 10px; }
.TablaDet tr:hover, .Tabla tr:hover { background-color: transparent; }
.TablaDet tr:hover > td.FilaTabla, .Tabla tr:hover > td.FilaTabla, tr.FilaTabla:hover td { background-color: var(--mod-salvia-suave); }
.TablaDet .right, .Tabla .right { text-align: right; }
.TablaDet .center, .Tabla .center { text-align: center; }
.FilaTabla a { color: var(--mod-acento); }

/* Cabecera de listados (div .row.TituloTabla y tr.TituloTabla) */
.TituloTabla, tr.TituloTabla, .TituloTabla.Enc2, .row.TituloTabla {
	background: var(--mod-crema);
	color: var(--mod-texto-sec);
	border: none;
	border-radius: 0;
	font-family: var(--mod-fuente);
	font-weight: 600;
	font-size: 0.75rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	margin: 0;
}
.TituloTabla td, .TituloTabla th, .row.TituloTabla .cell { padding: 11px 10px; border-bottom: 1px solid var(--mod-borde); }
.TituloTabla select { color: var(--mod-texto); font-family: var(--mod-fuente); font-size: 0.8125rem; text-transform: none; letter-spacing: 0; }
table.Tabla { background: #fff; border: 1px solid var(--mod-borde); border-radius: var(--mod-radio-card); overflow: hidden; }

/* Listados con div (.table/.row/.cell) */
.table {
	background: #fff;
	border: 1px solid var(--mod-borde);
	border-radius: var(--mod-radio-card);
	overflow: hidden;
	box-shadow: var(--mod-sombra);
}
.row:not(.TituloTabla) { transition: background-color .1s ease; }
.row:not(.TituloTabla):hover, .paneltr:hover { background-color: var(--mod-salvia-suave); }
.row:not(.TituloTabla) .cell {
	border-bottom: 1px solid var(--mod-salvia-suave);
	padding: 12px 10px;
	font-size: 0.875rem;
	line-height: 1.4;
}
.paneltr { font-family: var(--mod-fuente); }
.paneltd { border-bottom-color: var(--mod-salvia-suave); }
#ID { font-weight: 600; color: var(--mod-texto-suave); font-size: 0.8125rem; }

/* Formularios */
.Contenido input[type=text], .Contenido input[type=number], .Contenido input[type=email],
.Contenido input[type=tel], .Contenido input[type=password], .Contenido input[type=date],
.Contenido input[type=time], .Contenido input[type=search], .Contenido input[type=url],
.Contenido input:not([type]), .Contenido select, .Contenido textarea {
	font-family: var(--mod-fuente);
	font-size: 0.875rem;
	color: var(--mod-texto);
	background-color: #fff;
	border: 1px solid var(--mod-borde-fuerte);
	border-radius: var(--mod-radio);
	padding: 7px 10px;
	line-height: 1.35;
	box-sizing: border-box;
	transition: border-color .15s, box-shadow .15s;
}
.Contenido select { padding-right: 28px; }
.Contenido input:focus, .Contenido select:focus, .Contenido textarea:focus {
	outline: none;
	border-color: var(--mod-acento);
	box-shadow: 0 0 0 3px rgba(47, 82, 64, .15);
}
.Contenido input[readonly] { background-color: #FAFAF7; }
.Contenido input[type=submit]:not(.BotonMes):not(.BotonBuscar):not(.icono20):not(.icono48),
.Contenido input[type=button]:not(.icono20):not(.icono48),
.Contenido button:not(.nav-mobile):not(.ui-button):not(.ui-dialog-titlebar-close):not(.BotonMes):not(.btn):not(.filtros-toggle) {
	background: var(--mod-acento);
	color: #fff;
	border: 1px solid var(--mod-acento);
	border-radius: 999px;
	padding: 9px 22px;
	font-family: var(--mod-fuente);
	font-weight: 600;
	font-size: 0.875rem;
	line-height: 1.2;
	width: auto;
	cursor: pointer;
	transition: background-color .15s;
}
.Contenido input[type=submit]:not(.BotonMes):not(.BotonBuscar):not(.icono20):not(.icono48):hover,
.Contenido input[type=button]:not(.icono20):not(.icono48):hover,
.Contenido button:not(.nav-mobile):not(.ui-button):not(.ui-dialog-titlebar-close):not(.BotonMes):not(.btn):not(.filtros-toggle):hover { background: var(--mod-acento-oscuro); }
.Contenido label { color: var(--mod-texto-sec); }

/* Mensajes (guardado, error, aviso...) */
.mensaje {
	border: 1px solid transparent;
	border-radius: 12px;
	color: var(--mod-texto);
	font-weight: 600;
	font-size: 0.875rem;
	text-align: left;
	margin: 10px 0;
	padding: 14px 16px 14px 58px;
	min-height: 0;
	background-position: 16px center;
	background-size: 26px 26px !important;
}
.mensaje.error, .mensaje.borrado { background-color: var(--mod-rojo-suave); border-color: #EFC9C3; color: #7E1F18; }
.mensaje.aviso { background-color: var(--mod-dorado-suave); border-color: #F1DBA8; color: #6B4700; }
.mensaje.guardado, .mensaje.correcto { background-color: #E7F2DD; border-color: #CFE3BF; color: #2D5A12; }

/* Menú de opciones (bloque de iconos a la derecha): tarjeta con acciones en columna */
.opciones {
	font-family: var(--mod-fuente);
	background: #fff;
	border: 1px solid var(--mod-borde);
	border-radius: var(--mod-radio-card);
	box-shadow: var(--mod-sombra);
	color: var(--mod-texto);
	font-size: 0.7813rem;
	font-weight: 600;
}
.opciones a { color: var(--mod-texto); }
.opciones li { padding-bottom: .9em; }
#MenuOpciones {
	background-image: none;
	padding: 12px 8px 4px;
	width: 84px;
	text-align: center;
}
#MenuOpciones li a { display: flex; flex-direction: column; align-items: center; gap: 4px; text-decoration: none; padding: 4px; border-radius: 10px; }
#MenuOpciones li a:hover { background: var(--mod-salvia-suave); color: var(--mod-acento); }
#MenuOpciones .icono48 { width: 34px; height: 34px; margin: 0; }
#MenuOpciones img { width: 34px; height: 34px; }
.opciones.absolute { position: absolute; z-index: 20; text-align: left; padding: 8px; min-width: 220px; }
.opciones.absolute ul { margin: 0; }
.opciones.absolute li { padding: 0; }
.opciones.absolute li a, .opciones.absolute li.rojo { display: flex; align-items: center; gap: 8px; padding: 7px 8px; border-radius: 8px; text-decoration: none; font-weight: 500; }
.opciones.absolute li a:hover { background: var(--mod-salvia-suave); }
.opciones.absolute li.rojo { background: var(--mod-acento-suave); color: var(--mod-acento); font-weight: 700; }
.opciones.absolute .EncTabla { width: auto; background: none; font-weight: 700; color: var(--mod-texto); padding: 4px 8px 8px; }

/* Pestañas horizontales heredadas (.navh) y submenús: mismo estilo que .nav-modulo */
.MenuTabs { overflow: visible; }
.navh, .nav-modulo {
	display: flex;
	gap: 2px;
	margin: 0 0 20px;
	padding: 0;
	background: transparent;
	border-radius: 0;
	border-bottom: 1px solid var(--mod-borde);
	font-family: var(--mod-fuente);
	font-size: 0.875rem;
	font-weight: 500;
	overflow-x: auto;
	scrollbar-width: none;
}
.navh::-webkit-scrollbar, .nav-modulo::-webkit-scrollbar { display: none; }
.navh a, .nav-modulo a {
	flex: none;
	padding: 10px 14px;
	color: var(--mod-texto-sec);
	text-decoration: none;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	border-radius: 0;
	background: none;
	line-height: 1.25rem;
	white-space: nowrap;
}
.navh a:hover, .nav-modulo a:hover { color: var(--mod-texto); background: none; border-radius: 0; }
.navh .state-active, .nav-modulo a.activo {
	color: var(--mod-acento);
	border-bottom-color: var(--mod-acento);
	background: none;
	border-radius: 0;
	font-weight: 600;
}

/* Barra de filtros (includes/filtros_reservas.php) */
.Filtros {
	font-family: var(--mod-fuente);
	background: #fff;
	border: 1px solid var(--mod-borde);
	border-radius: var(--mod-radio-card);
	box-shadow: var(--mod-sombra);
	color: var(--mod-texto);
	font-weight: 500;
	text-align: left;
	padding: 10px 12px;
	margin: 0 0 16px;
}
.Filtros .TituloFiltro { display: none; }
.filtros-barra { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.filtros-barra select, .filtros-barra input[type=text] { font-size: 0.8438rem; padding: 6px 10px; }
.filtros-meses { display: flex; gap: 2px; background: var(--mod-crema); border-radius: 999px; padding: 3px; overflow-x: auto; scrollbar-width: none; max-width: 100%; }
.filtros-meses::-webkit-scrollbar { display: none; }
.Contenido .Filtros input.BotonMes, .Contenido .Filtros .BotonMes {
	background: transparent;
	color: var(--mod-texto-sec);
	border: 0;
	border-radius: 999px;
	padding: 5px 10px;
	margin: 0;
	font-family: var(--mod-fuente);
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1.2;
	width: auto;
	cursor: pointer;
	white-space: nowrap;
}
.Contenido .Filtros input.BotonMes:hover, .Contenido .Filtros .BotonMes:hover { background: #fff; color: var(--mod-texto); }
.Contenido .Filtros input.BotonMes.active, .Contenido .Filtros .BotonMes.active { background: var(--mod-acento); color: #fff; }
.filtros-rango { display: inline-flex; align-items: center; gap: 4px; }
.filtros-rango input { width: 104px; }
.filtros-toggles { display: flex; flex-wrap: wrap; gap: 6px; }
.Contenido .Filtros label.BotonMes { background: var(--mod-crema); display: inline-flex; align-items: center; gap: 6px; font-weight: 500; }
.Contenido .Filtros label.BotonMes input { margin: 0; }
.Contenido .Filtros label.BotonMes.active { background: var(--mod-acento-suave); color: var(--mod-acento); }
.filtros-mas-cuerpo { display: flex; flex-wrap: wrap; gap: 8px 10px; align-items: center; }
.filtros-rango i { color: var(--mod-texto-suave); margin-right: 2px; }
.filtros-buscar { order: 99; margin-left: auto; }
.filtros-toggle, .filtros-mes-movil { display: none; }
.Contenido .Filtros select.filtros-mes-movil { display: none; }
.Contenido .Filtros input.BotonBuscar { display: none; }
.view_web { display: contents; }

/* Litepicker y jQuery UI con los colores de la marca */
.litepicker { font-family: var(--mod-fuente); }
.ui-widget { font-family: var(--mod-fuente); }
.ui-widget-header { background: var(--mod-acento); border-color: var(--mod-acento); color: #fff; }
.ui-state-hover, .ui-state-active, .ui-widget-content .ui-state-active { background: var(--mod-acento); border-color: var(--mod-acento); color: #fff; }

/* Acceso (includes/login.php) */
.login-card {
	max-width: 380px;
	margin: 40px auto;
	background: #fff;
	border: 1px solid var(--mod-borde);
	border-radius: 18px;
	box-shadow: 0 8px 30px rgba(29, 38, 34, .08);
	padding: 28px 28px 24px;
}
.login-titulo { font-family: var(--mod-serif); font-weight: 600; font-size: 1.5rem; color: var(--mod-texto); }
.login-sub { margin: 4px 0 18px; color: var(--mod-texto-sec); font-size: 0.8438rem; }
.login-card label { display: block; font-size: 0.8125rem; font-weight: 600; margin: 12px 0 5px; }
.login-card input[type=text], .login-card input[type=password] { width: 100%; padding: 10px 12px; }
.Contenido .login-card input[type=submit] { width: 100%; margin-top: 20px; padding: 11px; }

/* ---------------------------------------------------------------------
   4. Inicio (index.php)
   --------------------------------------------------------------------- */
.dash-saludo { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 14px; margin: 0 0 16px; }
.dash-saludo h1 { margin: 0; font-family: var(--mod-serif); font-weight: 600; font-size: 1.5rem; }
.dash-saludo span { color: var(--mod-texto-sec); font-size: 0.875rem; }

/* Resumen de hoy: tarjetas grandes con acceso directo */
.dash-kpis {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	margin: 0 0 18px;
}
.dash-kpi {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	background: #fff;
	border: 1px solid var(--mod-borde);
	border-radius: var(--mod-radio-card);
	box-shadow: var(--mod-sombra);
	text-decoration: none;
	color: var(--mod-texto);
	transition: transform .15s, box-shadow .15s;
}
a.dash-kpi:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(29, 38, 34, .09); }
.dash-kpi-icono {
	width: 42px;
	height: 42px;
	border-radius: 12px;
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.0625rem;
	background: var(--mod-acento-suave);
	color: var(--mod-acento);
}
.dash-kpi-num { display: block; font-size: 1.625rem; font-weight: 700; line-height: 1; }
.dash-kpi-txt { display: block; font-size: 0.8125rem; line-height: 1.3; color: var(--mod-texto-sec); margin-top: 4px; }
.dash-kpi-ok { position: absolute; top: 10px; right: 12px; color: #4E8A2A; font-size: 0.9375rem; }
.dash-kpi.kpi-aviso { background: var(--mod-dorado); border-color: var(--mod-dorado); color: var(--mod-texto); }
.dash-kpi.kpi-aviso .dash-kpi-icono { background: rgba(255,255,255,.45); color: #6B4700; }
.dash-kpi.kpi-aviso .dash-kpi-txt { color: #4A3500; }
.dash-kpi.kpi-aviso:hover { background: var(--mod-dorado-oscuro); }
.dash-kpi.kpi-hecho .dash-kpi-icono { background: #E1EFD6; color: #2D5A12; }

.dashboard-cols {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	margin: 0 0 18px;
	align-items: start;
}
.dashboard-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 16px;
	margin: 0 0 18px;
}
.dash-card {
	background: #fff;
	border: 1px solid var(--mod-borde);
	border-radius: var(--mod-radio-card);
	box-shadow: var(--mod-sombra);
	padding: 16px 16px 8px;
	min-width: 0;
}
.dash-card-titulo {
	display: flex;
	align-items: center;
	gap: 9px;
	margin: 0 0 12px;
	font-family: var(--mod-serif);
	font-weight: 600;
	font-size: 1.0625rem;
	color: var(--mod-texto);
}
.dash-card-titulo i { color: var(--mod-acento); font-size: 0.9375rem; }
.dash-count {
	margin-left: auto;
	min-width: 24px;
	text-align: center;
	background: var(--mod-crema);
	color: var(--mod-texto-sec);
	font-family: var(--mod-fuente);
	font-size: 0.7813rem;
	font-weight: 700;
	border-radius: 999px;
	padding: 2px 8px;
}
.dash-vacio {
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--mod-texto-sec);
	font-size: 0.875rem;
	padding: 6px 0 14px;
}
.dash-vacio i { color: #4E8A2A; }

/* Fila de estancia con la foto de la casa de fondo (como en la web de reservas) */
.dash-estancia {
	position: relative;
	display: block;
	border-radius: 12px;
	overflow: hidden;
	margin: 0 0 10px;
	background: var(--mod-acento-oscuro) center / cover no-repeat;
	color: #fff;
	text-decoration: none;
	min-height: 112px;
}
.dash-estancia::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(20, 30, 24, .15) 0%, rgba(20, 30, 24, .55) 45%, rgba(20, 30, 24, .88) 100%);
}
.dash-estancia-cuerpo { position: relative; padding: 12px 14px 12px; display: flex; flex-direction: column; gap: 3px; min-height: 112px; box-sizing: border-box; justify-content: flex-end; }
.dash-estancia-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.dash-estancia-casa {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	background: rgba(255,255,255,.18);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	padding: 3px 9px;
	border-radius: 999px;
}
.dash-estancia-dato { font-size: 0.7813rem; font-weight: 600; background: rgba(0,0,0,.28); padding: 3px 9px; border-radius: 999px; white-space: nowrap; }
.dash-estancia-cliente { font-size: 1rem; font-weight: 700; margin-top: auto; text-shadow: 0 1px 2px rgba(0,0,0,.3); }
.dash-estancia-extra { font-size: 0.7813rem; color: rgba(255,255,255,.85); }
a.dash-estancia:hover .dash-estancia-cliente { text-decoration: underline; }
.dash-estancia-wrap { margin: 0 0 12px; border: 1px solid var(--mod-borde); border-radius: 12px; overflow: hidden; background: #fff; }
.dash-estancia-wrap .dash-estancia { margin: 0; border-radius: 0; }
.dash-estancia-acciones { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 8px 10px; }
.dash-estancia-acciones .dash-action { background: var(--mod-crema); }

.dash-action {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	color: var(--mod-texto);
	text-decoration: none;
	font-size: 0.8125rem;
}
.dash-action:hover { background: var(--mod-crema); }
.dash-action.dash-action-whatsapp { color: #1E9E53; }
.dash-action.dash-action-registrar { background: var(--mod-dorado); color: var(--mod-texto); }

/* Filas compactas de listas */
.dash-item {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	padding: 10px 0;
	border-bottom: 1px solid var(--mod-salvia-suave);
	text-decoration: none;
	color: var(--mod-texto);
	font-size: 0.875rem;
}
.dash-item:last-child { border-bottom: 0; }
a.dash-item:hover .dash-item-nombre { color: var(--mod-acento); }
.dash-item-cuerpo { min-width: 0; flex: 1 1 130px; }
.dash-item-nombre { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dash-item-sub { font-size: 0.7813rem; color: var(--mod-texto-sec); margin-top: 2px; }
.dash-item-dato { color: var(--mod-texto-sec); font-size: 0.8125rem; white-space: nowrap; }
.dash-miniatura {
	width: 40px;
	height: 40px;
	border-radius: 10px;
	flex: none;
	background: var(--mod-crema) center / cover no-repeat;
}
.dash-fecha {
	width: 42px;
	flex: none;
	text-align: center;
	border-radius: 10px;
	background: var(--mod-crema);
	padding: 4px 0;
	line-height: 1.1;
}
.dash-fecha b { display: block; font-size: 1rem; }
.dash-fecha span { display: block; font-size: 0.6563rem; text-transform: uppercase; color: var(--mod-texto-sec); font-weight: 600; }
.dash-fecha.es-hoy { background: var(--mod-acento); color: #fff; }
.dash-fecha.es-hoy span { color: var(--mod-salvia); }

/* ---------------------------------------------------------------------
   5. Panel de reservas (Reservas/index.php)
   --------------------------------------------------------------------- */
.reservas-lista .rsv-fila { cursor: pointer; }
.reservas-lista .cell { vertical-align: middle; text-align: left; }
.reservas-lista .row.TituloTabla .cell { text-align: left; }
.reservas-lista .rsv-c-tramites, .reservas-lista .rsv-c-acciones,
.reservas-lista .row.TituloTabla .cell:nth-child(6) { text-align: center; }
.reservas-lista .rsv-c-total, .reservas-lista .row.TituloTabla .cell:nth-child(5) { text-align: right; }
.rsv-id { display: block; font-size: 0.75rem; font-weight: 600; color: var(--mod-texto-suave); margin-bottom: 4px; }
.rsv-fecha { display: inline-block; }
.rsv-fecha small { font-weight: 500; color: var(--mod-texto-suave); }
.rsv-noches { margin-top: 4px; }
.rsv-noches i { font-size: 0.6875rem; color: var(--mod-texto-suave); }
.rsv-c-cliente { max-width: 260px; }
.rsv-fechas { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.rsv-fecha b { display: block; font-size: 0.875rem; }
.rsv-fecha span { display: block; font-size: 0.75rem; color: var(--mod-texto-suave); }
.rsv-fechas i { color: var(--mod-texto-suave); font-size: 0.6875rem; }
.rsv-noches { display: inline-flex; align-items: center; gap: 5px; color: var(--mod-texto-sec); font-size: 0.8125rem; }
.rsv-cliente-nombre { font-weight: 600; }
.rsv-cliente-contacto { display: flex; gap: 6px; margin-top: 4px; }
.rsv-contacto {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--mod-crema);
	color: var(--mod-texto-sec);
	font-size: 0.75rem;
	text-decoration: none;
}
.rsv-contacto:hover { background: var(--mod-acento); color: #fff; }
.rsv-contacto.whatsapp-ico { color: #1E9E53; }
.rsv-total b { display: block; font-size: 0.9063rem; }
.rsv-total .pill { margin-top: 4px; }
.rsv-iconos { display: flex; align-items: center; justify-content: center; gap: 4px; }
.rsv-ico {
	width: 30px;
	height: 30px;
	border-radius: 8px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 0.875rem;
	text-decoration: none;
	background: var(--mod-crema);
	color: var(--mod-texto-suave);
}
.rsv-ico:hover { background: var(--mod-acento); color: #fff; }
.rsv-ico.ok { background: #E1EFD6; color: #2D5A12; }
.rsv-ico.aviso { background: var(--mod-dorado-suave); color: #8A5A00; }
.rsv-ico.pend { background: var(--mod-crema); color: var(--mod-texto-suave); }
.rsv-origen { display: block; font-size: 0.7188rem; color: var(--mod-texto-suave); margin-top: 3px; }

/* ---------------------------------------------------------------------
   6. Planning (Reservas/planning.php)
   --------------------------------------------------------------------- */
.planning-nav {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 14px;
	font-family: var(--mod-fuente);
	flex-wrap: wrap;
}
.planning-mes-actual {
	font-family: var(--mod-serif);
	font-weight: 600;
	font-size: 1.5rem;
	margin-right: auto;
}
.planning-nav-boton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 12px;
	box-sizing: border-box;
	border: 1px solid var(--mod-borde-fuerte);
	border-radius: 999px;
	background: #fff;
	text-decoration: none;
	color: var(--mod-texto);
	font-weight: 600;
	font-size: 0.8438rem;
}
.planning-nav-boton:hover { border-color: var(--mod-acento); color: var(--mod-acento); }
.planning-scroll {
	overflow-x: auto;
	background: #fff;
	border: 1px solid var(--mod-borde);
	border-radius: var(--mod-radio-card);
	box-shadow: var(--mod-sombra);
	-webkit-overflow-scrolling: touch;
}
.planning-grid {
	--col-casa: 150px;
	--col-dia: 29px;
	display: grid;
	grid-template-columns: var(--col-casa) repeat(var(--dias), minmax(var(--col-dia), 1fr));
	grid-auto-rows: 52px;
	min-width: calc(var(--col-casa) + var(--dias) * var(--col-dia));
	font-family: var(--mod-fuente);
	font-size: 0.8125rem;
}
.planning-grid > .planning-cab:first-child { grid-row: 1; }
.planning-cab {
	text-align: center;
	color: var(--mod-texto-sec);
	padding: 7px 2px;
	border-bottom: 1px solid var(--mod-borde);
	background: #FAFAF7;
}
.planning-cab.planning-finde { background: var(--mod-crema); color: var(--mod-texto); }
.planning-cab-letra { display: block; font-size: 0.6563rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.planning-cab-num { display: block; font-size: 0.875rem; font-weight: 600; }
.planning-cab.planning-hoy { background: var(--mod-acento); color: #fff; border-radius: 0; }
.planning-cab-hoy-tag { display: none; }
.planning-cab-casa { grid-column: 1; position: sticky; left: 0; z-index: 3; background: #FAFAF7; }
.planning-fila-casa {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 0 10px;
	font-weight: 600;
	font-size: 0.8438rem;
	border-bottom: 1px solid var(--mod-borde);
	border-right: 1px solid var(--mod-borde);
	background: #fff;
	position: sticky;
	left: 0;
	z-index: 2;
	overflow: hidden;
	white-space: nowrap;
}
.planning-fila-casa .dash-miniatura { width: 30px; height: 30px; border-radius: 8px; }
.planning-fila-casa .planning-casa-nombre { overflow: hidden; text-overflow: ellipsis; }
.planning-fila-casa .planning-casa-color { width: 4px; align-self: stretch; margin: 10px 0; border-radius: 4px; background: var(--c); flex: none; }
.planning-dia-fondo { border-bottom: 1px solid var(--mod-borde); border-left: 1px solid #F3F2EE; }
.planning-dia-fondo.planning-dia-finde { background: #FAF9F5; }
.planning-dia-fondo.planning-dia-hoy { background: rgba(47, 82, 64, .06); }
.planning-bloque {
	position: relative;
	z-index: 1;
	align-self: center;
	margin: 7px 1px;
	padding: 0 8px;
	height: 36px;
	box-sizing: border-box;
	border-radius: 8px;
	font-size: 0.7813rem;
	font-weight: 600;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	text-decoration: none;
	display: flex;
	align-items: center;
	gap: 6px;
}
.planning-doscasas { align-self: stretch; height: auto; margin: 8px 1px; }
.planning-sinconfirmar { background: #FBE6B8; color: #6B4700; box-shadow: inset 3px 0 0 var(--mod-dorado); }
.planning-confirmada { background: #D7E7F5; color: #1C4466; box-shadow: inset 3px 0 0 #4F86B5; }
.planning-encurso { background: var(--mod-acento); color: #fff; }
.planning-finalizada { background: #E4EFD9; color: #3F6425; }
.planning-limpieza {
	background: repeating-linear-gradient(135deg, #F1EFE9 0, #F1EFE9 4px, #DDD9CF 4px, #DDD9CF 8px);
	color: var(--mod-texto-sec);
	justify-content: center;
	font-weight: 500;
	padding: 0;
}
.planning-bloque-nombre { order: 1; overflow: hidden; text-overflow: ellipsis; }
.planning-canal {
	order: 2;
	flex: none;
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	font-size: 0.625rem;
	font-weight: 700;
	border-radius: 5px;
	padding: 0;
	background: rgba(0,0,0,.12);
	color: inherit;
}
.planning-canal.canal-airbnb { background: #FF5A5F; color: #fff; }
.planning-canal.canal-booking { background: #003580; color: #fff; }
.planning-canal.canal-web { background: #1D9E75; color: #fff; }
.planning-canal.canal-tel { background: #7F77DD; color: #fff; }
.planning-canal.canal-mail { background: #D85A30; color: #fff; }
.planning-canal.canal-otro { background: #5F5E5A; color: #fff; }
.planning-tooltip {
	display: none;
	position: fixed;
	background: var(--mod-texto);
	color: #fff;
	padding: 10px 12px;
	border-radius: 10px;
	font-size: 0.8125rem;
	font-weight: 500;
	line-height: 1.6;
	white-space: normal;
	width: 230px;
	z-index: 50;
	box-shadow: 0 6px 20px rgba(0,0,0,.25);
	pointer-events: none;
}
.planning-tooltip.visible { display: block; }
.planning-tooltip-linea { display: block; }
.planning-tooltip-linea i { width: 16px; margin-right: 6px; color: var(--mod-salvia); text-align: center; }
.planning-tooltip-flecha { display: none; }
.planning-leyenda {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	margin-top: 12px;
	font-size: 0.8125rem;
	color: var(--mod-texto-sec);
	font-family: var(--mod-fuente);
}
.planning-leyenda > span { display: inline-flex; align-items: center; }
.planning-punto { display: inline-block; width: 14px; height: 14px; border-radius: 4px; margin-right: 6px; vertical-align: middle; box-shadow: none; }

/* ---------------------------------------------------------------------
   7. Calendario de disponibilidad (estilo del calendario de la web)
   --------------------------------------------------------------------- */
:root {
	--dispo-libre: #ffffff;
	--dispo-ocupado: #E0826F;
	--dispo-pendiente: #EFB53C;
	--dispo-encurso: #6FA84E;
	--dispo-cerrado: #B9B4A7;
}
.dispo {
	background: #fff;
	border: 1px solid var(--mod-borde);
	border-radius: var(--mod-radio-card);
	box-shadow: var(--mod-sombra);
	padding: 14px 16px 16px;
	margin: 18px 0;
}
.dispo-cab { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; flex-wrap: wrap; }
.dispo-cab h2 { margin: 0 auto 0 0; font-family: var(--mod-serif); font-weight: 600; font-size: 1.125rem; color: var(--mod-acento); }
.dispo-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 4px; margin-bottom: 14px; }
.dispo-tabla { border-collapse: separate; border-spacing: 2px; font-family: var(--mod-fuente); }
/* Cabecera sombreada: franja del mes y fila de días, para distinguir bien cada mes */
.dispo-fila-mes th {
	background: var(--mod-acento);
	color: #fff;
	text-align: left;
	font-size: 0.8438rem;
	font-weight: 700;
	letter-spacing: .02em;
	padding: 6px 10px;
	border-radius: 8px 8px 0 0;
}
.dispo-fila-dias th {
	background: #E4E9DC;
	color: var(--mod-texto);
	font-size: 0.7188rem;
	font-weight: 700;
	text-align: center;
	min-width: 28px;
	padding: 3px 0 4px;
	line-height: 1.15;
}
.dispo-fila-dias th span { display: block; font-size: 0.5938rem; font-weight: 600; color: var(--mod-texto-sec); text-transform: uppercase; }
.dispo-fila-dias th.finde { background: #D2DAC6; }
.dispo-fila-dias th.hoy { background: var(--mod-dorado); color: var(--mod-texto); }
.dispo-fila-dias th.hoy span { color: var(--mod-texto); }
.dispo-fila-dias th.dispo-casa-cab { background: #E4E9DC; min-width: 118px; }
.dispo-tabla td.dispo-casa {
	position: sticky;
	left: 0;
	z-index: 1;
	background: #fff;
	padding: 0 10px 0 0;
	font-size: 0.8125rem;
	font-weight: 600;
	white-space: nowrap;
}
.dispo-tabla td.dispo-casa .casa-chip { font-size: 0.75rem; }
.dispo-dia {
	width: 28px;
	height: 28px;
	box-sizing: border-box;
	text-align: center;
	vertical-align: middle;
	font-size: 0.7813rem;
	font-weight: 600;
	border-radius: 6px;
	border: 1px solid #CBD3BD;
	background: var(--dispo-libre);
	color: var(--mod-texto);
	padding: 0;
}
.dispo-dia a { display: block; line-height: 1.625rem; color: inherit; text-decoration: none; }
.dispo-dia.finde { background: #F6F7F2; }
.dispo-dia.pasado { border-color: transparent; color: #BFC3BB; background: transparent; font-weight: 500; }
.dispo-dia.ocupado { background: var(--dispo-ocupado); border-color: var(--dispo-ocupado); color: #fff; }
.dispo-dia.pendiente { background: var(--dispo-pendiente); border-color: var(--dispo-pendiente); color: #3D2A00; }
.dispo-dia.encurso { background: var(--dispo-encurso); border-color: var(--dispo-encurso); color: #fff; }
.dispo-dia.cerrado, .dispo-leyenda i.leyenda-cerrado { background: repeating-linear-gradient(135deg, #E9E6DE 0, #E9E6DE 4px, var(--dispo-cerrado) 4px, var(--dispo-cerrado) 8px); border-color: var(--dispo-cerrado); color: #4A4A45; }
/* Días de entrada / salida / cambio: partidos en diagonal con corte limpio (sin degradado) */
.dispo-dia.mitad { background: linear-gradient(135deg, var(--c1) 0 50%, var(--c2) 50% 100%); border-color: #CBD3BD; color: var(--mod-texto); }
.dispo-dia.mitad.cambio { background: linear-gradient(135deg, var(--c1) 0 44%, #fff 44% 56%, var(--c2) 56% 100%); }
.dispo-dia.mitad a { text-shadow: 0 0 3px #fff, 0 0 2px #fff; }
.dispo-dia.hoy { box-shadow: 0 0 0 2px var(--mod-acento-oscuro); }
.dispo-dia:not(.pasado):hover { filter: brightness(.94); }
.dispo-leyenda { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 4px; font-size: 0.7813rem; color: var(--mod-texto-sec); }
.dispo-leyenda span { display: inline-flex; align-items: center; gap: 6px; }
.dispo-leyenda i { display: inline-block; width: 16px; height: 16px; border-radius: 4px; border: 1px solid #CBD3BD; box-sizing: border-box; background: #fff; }

/* ---------------------------------------------------------------------
   8. Detalle de reserva
   --------------------------------------------------------------------- */
.rsv-hero {
	position: relative;
	border-radius: 18px;
	overflow: visible;
	z-index: 5;
	background: var(--mod-acento-oscuro) center / cover no-repeat;
	color: #fff;
	margin: 0 0 16px;
	box-shadow: var(--mod-sombra);
}
.rsv-hero::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(90deg, rgba(20, 32, 25, .92) 0%, rgba(20, 32, 25, .72) 45%, rgba(20, 32, 25, .25) 100%); }
.rsv-hero-cuerpo { position: relative; padding: 22px 24px; display: flex; flex-wrap: wrap; gap: 16px 28px; align-items: flex-end; }
.rsv-hero-principal { flex: 1 1 320px; min-width: 0; }
.rsv-hero-id { font-size: 0.7813rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--mod-salvia); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rsv-hero h1 { margin: 6px 0 4px; font-family: var(--mod-serif); font-weight: 600; font-size: 1.875rem; line-height: 1.15; color: #fff; }
.rsv-hero-casa { font-size: 0.9375rem; color: #E8EDE3; display: flex; align-items: center; gap: 8px; }
.rsv-hero-datos { display: flex; flex-wrap: wrap; gap: 10px; }
.rsv-hero-dato {
	background: rgba(255,255,255,.12);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	border: 1px solid rgba(255,255,255,.16);
	border-radius: 12px;
	padding: 9px 14px;
	min-width: 92px;
}
.rsv-hero-dato small { display: block; font-size: 0.6875rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--mod-salvia); }
.rsv-hero-dato b { display: block; font-size: 1rem; margin-top: 2px; }
.rsv-hero-dato span { display: block; font-size: 0.75rem; color: #D5DDD2; }
.rsv-hero .estado-pill { cursor: pointer; }
.rsv-acciones { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; }
.rsv-grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 16px;
	align-items: start;
}
.rsv-grid > .card { grid-column: span 4; }
.rsv-grid > .card.ancha { grid-column: span 8; }
.rsv-grid > .card.completa { grid-column: 1 / -1; }
.rsv-desglose { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.rsv-desglose th { text-align: left; font-size: 0.7188rem; letter-spacing: .05em; text-transform: uppercase; color: var(--mod-texto-suave); font-weight: 600; padding: 0 8px 8px; border-bottom: 1px solid var(--mod-borde); }
.rsv-desglose td { padding: 11px 8px; border-bottom: 1px solid var(--mod-salvia-suave); }
.rsv-desglose .num { text-align: right; white-space: nowrap; }
.rsv-desglose .cen { text-align: center; }
.rsv-desglose tfoot td { border-bottom: 0; font-weight: 700; font-size: 0.9375rem; padding-top: 14px; }
.rsv-pago { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 0; border-bottom: 1px solid var(--mod-salvia-suave); font-size: 0.875rem; }
.rsv-pago:last-child { border-bottom: 0; }
.rsv-pago .etq { color: var(--mod-texto-sec); display: flex; align-items: center; gap: 8px; }
.rsv-pago .val { font-weight: 700; white-space: nowrap; }
.rsv-pago.total .val { font-size: 1.375rem; color: var(--mod-acento); }
.rsv-pago-barra { height: 8px; border-radius: 99px; background: var(--mod-crema); overflow: hidden; margin: 6px 0 12px; }
.rsv-pago-barra span { display: block; height: 100%; background: var(--mod-acento); border-radius: 99px; }
.rsv-contacto-fila { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--mod-salvia-suave); font-size: 0.875rem; min-width: 0; }
.rsv-contacto-fila:last-child { border-bottom: 0; }
.rsv-contacto-fila > i { width: 30px; height: 30px; border-radius: 50%; background: var(--mod-crema); color: var(--mod-texto-sec); display: inline-flex; align-items: center; justify-content: center; font-size: 0.75rem; flex: none; }
.rsv-contacto-fila .txt { min-width: 0; overflow-wrap: anywhere; }
.rsv-contacto-fila .txt small { display: block; color: var(--mod-texto-suave); font-size: 0.75rem; }
.rsv-contacto-fila .acc { margin-left: auto; display: flex; gap: 6px; flex: none; }
.rsv-nota { background: var(--mod-salvia-suave); border-left: 3px solid var(--mod-dorado); border-radius: 8px; padding: 10px 12px; font-size: 0.875rem; line-height: 1.5; margin: 0 0 10px; }
.rsv-nota small { display: block; font-size: 0.7188rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--mod-texto-sec); margin-bottom: 4px; }
.rsv-hora select { font-size: 0.8438rem; padding: 5px 8px; }
.estado-menu { position: relative; display: inline-block; }
.estado-menu .opciones.absolute { top: calc(100% + 6px); left: 0; color: var(--mod-texto); }
.rsv-relacionadas { margin-top: 16px; }

/* ---------------------------------------------------------------------
   9. Entrada de viajeros: pasos
   --------------------------------------------------------------------- */
.pasos {
	display: flex;
	gap: 6px;
	margin: 0 0 20px;
	padding: 0;
	list-style: none;
	counter-reset: paso;
	overflow-x: auto;
	scrollbar-width: none;
}
.pasos li {
	flex: 1 1 0;
	min-width: 150px;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 14px;
	background: #fff;
	border: 1px solid var(--mod-borde);
	border-radius: 12px;
	font-size: 0.8438rem;
	font-weight: 600;
	color: var(--mod-texto-suave);
}
.pasos li::before {
	counter-increment: paso;
	content: counter(paso);
	width: 26px;
	height: 26px;
	flex: none;
	border-radius: 50%;
	background: var(--mod-crema);
	color: var(--mod-texto-sec);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 0.7813rem;
}
.pasos li.hecho { color: var(--mod-texto-sec); }
.pasos li.hecho::before { content: "\f00c"; font-family: "Font Awesome 5 Pro", "Font Awesome 5 Free"; font-weight: 900; background: #E1EFD6; color: #2D5A12; }
.pasos li.actual { border-color: var(--mod-acento); color: var(--mod-texto); box-shadow: 0 0 0 3px rgba(47, 82, 64, .1); }
.pasos li.actual::before { background: var(--mod-acento); color: #fff; }
.pasos li a { color: inherit; text-decoration: none; }

/* Entrada de viajeros: estados de fila (index) */
.entrada_viajeros .row.entrada_hoy { background: #EEF6E7; }
.entrada_viajeros .row.ocupada { background: #FBEDEA; }
.entrada_viajeros .row.salida_hoy { background: #EAF2FA; }
.entrada_viajeros .row.entrada_proxima { background: #FEF8EA; }
.entrada_hoy { background-color: #EEF6E7; }
.ocupada { background-color: #FBEDEA; }
.salida_hoy { background-color: #EAF2FA; }
.entrada_proxima { background-color: #FEF8EA; }
.leyenda.table { box-shadow: none; border: 0; background: transparent; }
.leyenda .cell { border-radius: 4px; font-size: 0.8125rem; }

/* ---------------------------------------------------------------------
   10. Móvil y tablet (mismo corte que estilos.css: 1000px)
   --------------------------------------------------------------------- */
@media only screen and (max-width: 1440px) {
	.dashboard-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rsv-grid > .card { grid-column: span 6; }
	.rsv-grid > .card.ancha { grid-column: 1 / -1; }
}
@media only screen and (max-width: 1000px) {
	body { padding-left: 0; padding-bottom: 72px; font-size: 0.9375rem; }
	.Contenido { padding: 0 14px 24px; }
	/* Sin backdrop-filter: haría de la cabecera el bloque contenedor de la barra inferior (position: fixed) */
	.Cabecera.topbar { margin: 0 -14px 14px; padding: 0 10px 0 14px; height: 56px; min-height: 56px; gap: 10px; font-size: 0.875rem; background: #fff; -webkit-backdrop-filter: none; backdrop-filter: none; }
	.Cabecera.topbar span { display: inline; }
	.Cabecera .topbar-logo img { height: 26px; width: auto; }
	.Cabecera .nav-mobile { display: inline-flex; }
	.Cabecera .nav-mobile span { display: block; }
	.topbar-usuario { display: none; }
	.topbar-nueva { margin-left: auto; padding: 9px 12px; }
	.topbar-nueva span { display: none !important; }
	/* Accesos rápidos: barra inferior de pestañas, como las apps de gestión */
	.topbar-nav {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 26;
		gap: 0;
		justify-content: space-around;
		overflow: visible;
		background: rgba(255,255,255,.97);
		border-top: 1px solid var(--mod-borde);
		padding: 5px 4px calc(5px + env(safe-area-inset-bottom));
		box-shadow: 0 -2px 12px rgba(29, 38, 34, .06);
	}
	.topbar-nav a { flex: 1; flex-direction: column; gap: 3px; padding: 6px 2px; border-radius: 10px; font-size: 0.6563rem; font-weight: 600; min-width: 0; }
	.topbar-nav a i { font-size: 1.0625rem; opacity: 1; }
	.topbar-nav a.activo { background: var(--mod-acento-suave); }

	/* Barra lateral: panel deslizante */
	.nav.sb {
		position: fixed;
		top: 0;
		left: 0;
		bottom: 0;
		height: auto;
		width: min(300px, 86vw);
		display: none;
		overflow-y: auto;
		z-index: 40;
		box-shadow: 0 0 0 100vmax rgba(15, 22, 18, .45);
		font-size: 0.9375rem;
		text-align: left;
		background: var(--mod-acento-oscuro);
	}
	.nav.sb.nav-active { display: flex; }
	.nav.sb .menu li a { padding: 11px 12px; }
	.nav.sb .menu ul li a { padding: 9px 10px; }
	body.menu-abierto { overflow: hidden; }
	.FinalPagina { padding-bottom: 16px; }

	.Contenido .Titulos, .pagina-cab h1 { font-size: 1.375rem; margin-bottom: 12px; }
	.dash-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.dash-kpi { padding: 12px; gap: 10px; }
	.dash-kpi-icono { width: 36px; height: 36px; font-size: 0.9375rem; }
	.dash-kpi-num { font-size: 1.375rem; }
	.dashboard-cols, .dashboard-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
	.rsv-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
	.rsv-grid > .card, .rsv-grid > .card.ancha { grid-column: 1 / -1; }
	.rsv-hero-cuerpo { padding: 18px 16px; }
	.rsv-hero h1 { font-size: 1.5rem; }
	.rsv-hero-dato { min-width: 0; flex: 1 1 40%; }

	/* Listados: cada fila pasa a tarjeta */
	.table { border: 0; background: transparent; box-shadow: none; border-radius: 0; overflow: visible; }
	.row:not(.TituloTabla) {
		background: #fff;
		border: 1px solid var(--mod-borde);
		border-radius: 12px;
		margin-bottom: 8px;
		box-shadow: var(--mod-sombra);
		padding: 6px 4px;
	}
	.row:not(.TituloTabla) .cell { border-bottom: 0; padding: 3px 6px; }

	/* Reservas: tarjeta compacta (casa y estado arriba, cliente, fechas, importe y trámites) */
	.reservas-lista .row.TituloTabla { display: none; }
	.reservas-lista .rsv-fila {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas: "casa id" "cliente cliente" "fechas fechas" "total tramites";
		gap: 6px 10px;
		padding: 12px 12px 10px;
	}
	.reservas-lista .rsv-fila .cell { display: block; padding: 0; text-align: left; max-width: none; }
	.reservas-lista .rsv-fila .cell.rsv-c-id { grid-area: id; text-align: right; display: flex; align-items: center; gap: 8px; justify-content: flex-end; }
	.reservas-lista .rsv-c-id .rsv-id { display: inline; margin: 0; }
	.reservas-lista .rsv-c-casa { grid-area: casa; }
	.reservas-lista .rsv-c-casa .rsv-origen { display: inline; margin-left: 6px; }
	.reservas-lista .rsv-fila .cell.rsv-c-cliente { grid-area: cliente; display: flex; align-items: center; gap: 8px; }
	.reservas-lista .rsv-cliente-nombre { font-size: 0.9375rem; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.reservas-lista .rsv-cliente-contacto { margin: 0; }
	.reservas-lista .rsv-fila .cell.rsv-c-fechas { grid-area: fechas; display: flex; align-items: center; gap: 12px; }
	.reservas-lista .rsv-fecha b, .reservas-lista .rsv-fecha span { display: inline; }
	.reservas-lista .rsv-fecha span { margin-left: 4px; }
	.reservas-lista .rsv-noches { margin: 0; }
	.reservas-lista .rsv-c-total { grid-area: total; text-align: left; }
	.reservas-lista .rsv-total { display: flex; align-items: center; gap: 8px; }
	.reservas-lista .rsv-total .pill { margin: 0; }
	.reservas-lista .rsv-c-tramites { grid-area: tramites; }
	.reservas-lista .rsv-fila .cell.rsv-c-acciones { display: none; }
	.reservas-lista .rsv-fila .cell.rsv-c-tramites .rsv-iconos { justify-content: flex-end; }
	.pagina-acciones .btn-borde { display: none; }
	.reservas-lista .row input[type=checkbox] { display: none; }

	.planning-grid { --col-casa: 96px; --col-dia: 36px; grid-auto-rows: 48px; font-size: 0.75rem; }
	.planning-fila-casa { padding: 0 8px; font-size: 0.7813rem; gap: 6px; }
	.planning-fila-casa .dash-miniatura { display: none; }
	.planning-bloque { padding: 0 5px; font-size: 0.7188rem; height: 32px; margin: 8px 1px; }
	/* «Las dos casas» ocupa las filas de Tío Pancho y Los Moros: sin la altura fija de los demás bloques */
	.planning-doscasas { height: auto; align-self: stretch; }
	.planning-canal { width: 16px; height: 16px; font-size: 0.5625rem; }
	.planning-mes-actual { font-size: 1.25rem; width: 100%; order: -1; }
	.planning-leyenda { font-size: 0.75rem; gap: 6px 12px; }

	.Filtros { padding: 8px; margin-bottom: 12px; }
	.filtros-barra { gap: 8px; }
	.filtros-meses { display: none; }
	.Contenido .Filtros select.filtros-mes-movil { display: block; flex: 1; min-width: 0; }
	.filtros-toggle { display: inline-flex; }
	.filtros-mas-cuerpo, .filtros-buscar { display: none; }
	.Filtros.abierto .filtros-mas-cuerpo { display: flex; flex-basis: 100%; }
	.Filtros.abierto .filtros-buscar { display: inline-flex; width: 100%; margin: 0; }
	.filtros-mas-cuerpo select { flex: 1 1 100%; }
	.filtros-rango { flex: 1 1 100%; }
	.filtros-rango input { flex: 1; width: auto; }

	#MenuOpciones { width: auto; float: none; padding: 8px; margin: 0 0 12px; display: block; }
	#MenuOpciones ul { display: flex; flex-wrap: wrap; gap: 4px; margin: 0; }
	#MenuOpciones li { width: auto; padding: 0; display: block; }
	.opciones li { width: auto; }
	.pasos li { min-width: 120px; padding: 8px 10px; font-size: 0.7813rem; }
}
@media only screen and (max-width: 520px) {
	.dash-kpi-txt { font-size: 0.75rem; }
	.rsv-hero-datos { width: 100%; }
}

/* Detalle de reserva: selectores de hora dentro de la cabecera con foto */
.rsv-hero .rsv-hora select {
	display: block;
	margin-top: 6px;
	width: 100%;
	max-width: 150px;
	font-size: 0.7813rem;
	padding: 4px 6px;
	background: rgba(255,255,255,.92);
	border-color: transparent;
}
.rsv-hero #cambia-estado { cursor: pointer; display: inline-flex; align-items: center; gap: 4px; }
.rsv-hero .estado-menu .opciones.absolute { color: var(--mod-texto); letter-spacing: 0; text-transform: none; font-size: 0.8438rem; }

/* ---------------------------------------------------------------------
   Proceso de la reserva (Reservas/proceso.php): 4 etapas con lista de pasos
   --------------------------------------------------------------------- */
.proceso-resumen { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; padding: 12px 16px; margin: 0 0 18px; font-size: 0.875rem; }
.proceso-resumen i { color: var(--mod-texto-suave); margin-right: 6px; }
.proceso-resumen .casa-chip i { color: #fff; margin: 0; }
.proceso-barra { display: flex; list-style: none; margin: 0 0 18px; padding: 0; counter-reset: etapa; }
.proceso-barra li { flex: 1; position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: 0.8125rem; font-weight: 600; color: var(--mod-texto-suave); text-align: center; }
.proceso-barra li::before { content: ""; position: absolute; top: 17px; left: -50%; right: 50%; height: 3px; background: var(--mod-borde); z-index: 0; }
.proceso-barra li:first-child::before { display: none; }
.proceso-barra li > span { position: relative; z-index: 1; width: 36px; height: 36px; border-radius: 50%; background: #fff; border: 2px solid var(--mod-borde); display: inline-flex; align-items: center; justify-content: center; font-size: 0.875rem; }
.proceso-barra li.hecha { color: var(--mod-acento); }
.proceso-barra li.hecha > span { background: var(--mod-acento); border-color: var(--mod-acento); color: #fff; }
.proceso-barra li.hecha::before, .proceso-barra li.actual::before { background: var(--mod-acento); }
.proceso-barra li.actual { color: var(--mod-texto); }
.proceso-barra li.actual > span { border-color: var(--mod-dorado); background: var(--mod-dorado-suave); color: #8A5A00; box-shadow: 0 0 0 4px rgba(227,167,47,.18); }
.proceso-etapas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; align-items: start; }
.proceso-etapa.actual { border-color: var(--mod-dorado); box-shadow: 0 0 0 3px rgba(227,167,47,.15), var(--mod-sombra); }
.proceso-etapa.hecha .card-titulo { color: var(--mod-acento); }
.paso-lista { list-style: none; margin: 0; padding: 0; }
.paso-item { display: flex; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--mod-salvia-suave); }
.paso-item:last-child { border-bottom: 0; }
.paso-ico { width: 26px; height: 26px; border-radius: 50%; flex: none; display: inline-flex; align-items: center; justify-content: center; font-size: 0.6875rem; background: var(--mod-crema); color: var(--mod-texto-suave); }
.paso-futuro .paso-ico i { font-size: 0.375rem; }
.paso-hecho .paso-ico { background: #E1EFD6; color: #2D5A12; }
.paso-pendiente .paso-ico { background: var(--mod-dorado); color: var(--mod-texto); }
.paso-txt { min-width: 0; font-size: 0.875rem; }
.paso-txt b { display: block; font-weight: 600; }
.paso-txt span { display: block; font-size: 0.7813rem; color: var(--mod-texto-sec); margin-top: 2px; }
.paso-futuro .paso-txt { color: var(--mod-texto-suave); }
.paso-acciones { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.paso-futuro .paso-acciones .btn { opacity: .75; }
@media only screen and (max-width: 1200px) { .proceso-etapas { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media only screen and (max-width: 1000px) {
	.proceso-etapas { grid-template-columns: minmax(0, 1fr); gap: 12px; }
	.proceso-barra li { font-size: 0.6875rem; }
}

/* ---------------------------------------------------------------------
   Formulario de reserva: bloque de precios y extras (extras.css ponía los
   números a 24px y, con el relleno nuevo, no se veía el valor)
   --------------------------------------------------------------------- */
.price-block { border-color: var(--mod-borde); border-radius: var(--mod-radio-card); overflow: hidden; }
.price-block .list-price li { border-bottom-color: var(--mod-salvia-suave); padding: 12px 16px; }
.price-block .extra-item > div:not(:first-child),
.price-block .unit-price .row > div:not(:first-child) { display: flex; align-items: center; gap: 6px; min-height: 40px; }
.price-block .extra-item > .col-md-2r, .price-block .unit-price .col-md-2r { justify-content: flex-end; }
.Contenido .price-block .extra-item input[type="number"] { width: 64px; padding: 7px 6px; text-align: center; }
.Contenido .price-block input.precio_extra { width: 92px; padding: 7px 8px; text-align: right; }
.Contenido .price-block input.total { width: 120px; padding: 7px 10px; font-size: 1rem; }
.price-block .euro { font-size: 0.9375rem; color: var(--mod-texto-sec); }
.price-block .extra-desc .note { color: var(--mod-texto-suave); font-size: 0.7813rem; }
.price-block .extra-item span:not(.euro):not(.note) { color: var(--mod-texto-sec); font-size: 0.8438rem; }
@media only screen and (max-width: 1000px) {
	.price-block .extra-item > div, .price-block .unit-price .row > div { float: none; width: 100%; margin: 4px 0; }
	.price-block .extra-item > .col-md-2r, .price-block .unit-price .col-md-2r { justify-content: flex-start; }
}

/* ---------------------------------------------------------------------
   Envío de email (Emails/index.php): formulario a la izquierda, vista previa a la derecha
   --------------------------------------------------------------------- */
.email-layout { display: grid; grid-template-columns: minmax(320px, 420px) minmax(0, 1fr); gap: 18px; align-items: start; }
.email-layout > #DatosReserva, .email-layout > #DatosCliente { float: none; width: auto; margin: 0; padding: 18px 20px; }
.form-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px 12px; margin-bottom: 14px; }
.form-grid .campo { grid-column: span 3; display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.form-grid .campo.ancho, .form-grid .campo-check.ancho { grid-column: 1 / -1; }
.form-grid .campo.tercio { grid-column: span 2; }
.form-grid .campo > span { font-size: 0.7813rem; font-weight: 600; color: var(--mod-texto-sec); }
.form-grid .campo input, .form-grid .campo select, .form-grid .campo textarea { width: 100%; }
.form-grid .campo-check { display: flex; align-items: center; gap: 8px; font-size: 0.8438rem; color: var(--mod-texto-sec); margin-top: -4px; }
.form-bloque { border-top: 1px solid var(--mod-salvia-suave); padding: 12px 0; margin: 0; }
.form-bloque-titulo { display: block; font-size: 0.7813rem; font-weight: 600; color: var(--mod-texto-sec); margin-bottom: 8px; cursor: default; }
details.form-bloque > summary { cursor: pointer; list-style: none; }
details.form-bloque > summary::-webkit-details-marker { display: none; }
details.form-bloque > summary::after { content: " ▾"; }
.chips-check { display: flex; flex-wrap: wrap; gap: 6px; }
.chips-check label { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px 6px 9px; border-radius: 999px; background: var(--mod-crema); font-size: 0.8125rem; color: var(--mod-texto); cursor: pointer; }
.chips-check label:has(input:checked) { background: var(--mod-acento-suave); color: var(--mod-acento); font-weight: 600; }
.chips-check input { margin: 0; accent-color: var(--mod-acento); }
.email-form input[type=submit] { width: 100%; margin-top: 4px; }
.email-preview { background: var(--mod-salvia-suave); border-radius: 12px; padding: 12px; margin-bottom: 14px; }
.email-meta { display: flex; gap: 10px; font-size: 0.8438rem; padding: 4px 6px; }
.email-meta span { width: 60px; color: var(--mod-texto-sec); flex: none; }
.email-meta b { font-weight: 600; overflow-wrap: anywhere; }
.email-preview .attachments { list-style: none; margin: 8px 0 0; padding: 0; font-size: 0.8125rem; color: var(--mod-texto-sec); }
.email-preview .attachments li:empty { display: none; }
@media only screen and (max-width: 1100px) { .email-layout { grid-template-columns: minmax(0, 1fr); } }

/* ---------------------------------------------------------------------
   Pagos de la reserva (Reservas/pagos.php y tarjeta en el detalle)
   --------------------------------------------------------------------- */
.pagos-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0 0 10px; }
.pagos-kpi { padding: 14px 16px; }
.pagos-kpi small { display: block; font-size: 0.75rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--mod-texto-suave); }
.pagos-kpi b { display: block; font-size: 1.375rem; margin-top: 4px; }
.pagos-kpi span { display: block; font-size: 0.75rem; color: var(--mod-texto-sec); margin-top: 3px; }
.pagos-kpi.ok b { color: var(--mod-acento); }
.pagos-kpi.aviso { background: var(--mod-dorado-suave); border-color: #F1DBA8; }
.pagos-kpi.aviso b { color: #8A5A00; }
.pagos-kpi.error { background: var(--mod-rojo-suave); border-color: #EFC9C3; }
.pagos-kpi.error b { color: var(--mod-rojo); }
.pagos-tabla td { vertical-align: top; }
.pago-tipo { display: inline-block; font-size: 0.75rem; font-weight: 700; padding: 2px 9px; border-radius: 999px; background: var(--mod-crema); color: var(--mod-texto-sec); }
.pago-tipo-anticipo { background: var(--mod-azul-suave); color: var(--mod-azul); }
.pago-tipo-estancia { background: #E1EFD6; color: #2D5A12; }
.pago-tipo-extra { background: var(--mod-dorado-suave); color: #8A5A00; }
.pago-tipo-canal { background: #EDE7F3; color: #5B3F7A; }
.pago-tipo-devolucion, .pago-tipo-traspaso { background: var(--mod-rojo-suave); color: var(--mod-rojo); }
.pago-concepto { font-size: 0.7813rem; color: var(--mod-texto-sec); margin-top: 3px; }
.pago-importe { font-weight: 700; white-space: nowrap; }
.pago-salida .pago-importe { color: var(--mod-rojo); }
.pago-acciones { white-space: nowrap; text-align: right; }
.pago-acciones .rsv-ico { margin-left: 2px; }
.pagos-origen { font-size: 0.8438rem; color: var(--mod-texto-sec); margin: 0 0 12px; }
.pagos-recalcular { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 8px; }
.pagos-recalcular label { font-size: 0.7813rem; }
.pagos-recalcular input { width: 110px; }
.card .form-grid { margin-bottom: 0; }
.card .form-grid .btn { width: 100%; }
.rsv-pagos-lista { margin: 4px 0 10px; }
.rsv-pagos-lista .rsv-pago .etq { font-size: 0.8125rem; }
@media only screen and (max-width: 1000px) { .pagos-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Mensajes de WhatsApp (Emails/mensajes.php): burbujas como en WhatsApp, sin el marco azul antiguo */
.wa-burbuja { background: #E7F6DC; border-radius: 14px 14px 14px 4px; padding: 12px 14px; margin: 10px 0 14px; max-width: 560px; box-shadow: 0 1px 1px rgba(0,0,0,.06); }
.wa-texto { font-size: 0.9063rem; line-height: 1.5; color: var(--mod-texto); overflow-wrap: anywhere; }
.wa-acciones { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(0,0,0,.06); }
.email-vista .email-meta { margin-bottom: 6px; }

/* Contactos recibidos */
.contactos-lista .cell { text-align: left; vertical-align: top; }
.contacto-comentario { font-size: 0.8125rem; color: var(--mod-texto-sec); max-width: 360px; }
@media only screen and (max-width: 1000px) { .contactos-lista .row .cell { display: block; padding: 3px 6px; } .contactos-lista .row.TituloTabla { display: none; } }

/* Solicitud del cliente desde Mi reserva (detalle de la reserva) */
.rsv-solicitud { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; background: var(--mod-dorado-suave); border: 1px solid #F1DBA8; border-left: 4px solid var(--mod-dorado); border-radius: 12px; padding: 14px 16px; margin: 0 0 16px; }
.rsv-solicitud > i { color: #8A5A00; font-size: 1.25rem; }
.rsv-solicitud-txt { flex: 1 1 280px; min-width: 0; }
.rsv-solicitud-txt b { display: block; }
.rsv-solicitud-txt span { display: block; font-size: 0.8125rem; color: var(--mod-texto-sec); margin-top: 2px; overflow-wrap: anywhere; }
.rsv-solicitud-acc { display: flex; flex-wrap: wrap; gap: 6px; }

/* ---------------------------------------------------------------------
   Calendario (Calendario/index.php): consulta de disponibilidad y precio
   --------------------------------------------------------------------- */
.cal-buscador { margin: 0 0 16px; }
.cal-atajos { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.cal-atajos .pill { font-weight: 600; }
.cal-atajos .pill:hover { background: var(--mod-acento-suave); color: var(--mod-acento); }
.cal-resumen { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0 0 12px; font-size: 0.9375rem; }
.cal-resultados { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 14px; margin: 0 0 8px; }
.cal-casa { background: #fff; border: 1px solid var(--mod-borde); border-radius: var(--mod-radio-card); box-shadow: var(--mod-sombra); overflow: hidden; display: flex; flex-direction: column; }
.cal-casa.no-libre { opacity: .72; }
.cal-casa-foto { height: 110px; background: var(--mod-acento-oscuro) center / cover no-repeat; position: relative; }
.cal-casa-foto .pill { position: absolute; top: 10px; left: 10px; box-shadow: 0 1px 3px rgba(0,0,0,.2); }
.cal-casa-cuerpo { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.cal-casa-detalle { font-size: 0.7813rem; color: var(--mod-texto-sec); }
.cal-precio { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; }
.cal-precio b { font-size: 1.375rem; color: var(--mod-acento); }
.cal-precio s { color: var(--mod-texto-suave); font-size: 0.875rem; }
.cal-precio span { font-size: 0.7813rem; color: var(--mod-texto-sec); }
.cal-oferta { font-size: 0.7813rem; font-weight: 600; color: #8A5A00; background: var(--mod-dorado-suave); border-radius: 8px; padding: 5px 8px; }
.cal-oferta i, .cal-aviso i { margin-right: 6px; }
.cal-aviso { font-size: 0.7813rem; color: var(--mod-rojo); }
.cal-casa-acciones { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; padding-top: 6px; }
.cal-precios { margin: 18px 0; }
.cal-tabs { margin-bottom: 14px; }
/* El nombre del mes queda fijo a la izquierda al desplazar el calendario en horizontal */
.dispo-fila-mes th span { position: sticky; left: 10px; }

/* ---------------------------------------------------------------------
   Entrada de viajeros (EntradaViajeros/index.php): tarjetas por día
   --------------------------------------------------------------------- */
.ev-grupo { margin: 0 0 22px; }
.ev-grupo-titulo { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; font-family: var(--mod-serif); font-weight: 600; font-size: 1.1875rem; color: var(--mod-texto); }
.ev-grupo-titulo .dash-count { margin-left: 0; }
.ev-tarjeta {
	display: grid;
	grid-template-columns: minmax(170px, 1.1fr) minmax(220px, 2fr) 150px 120px minmax(170px, 1.2fr) minmax(170px, auto);
	gap: 12px 18px;
	align-items: center;
	background: #fff;
	border: 1px solid var(--mod-borde);
	border-left: 5px solid var(--mod-borde);
	border-radius: 12px;
	box-shadow: var(--mod-sombra);
	padding: 12px 16px;
	margin: 0 0 8px;
}
.ev-tarjeta.ev-entrada { border-left-color: var(--dispo-encurso, #6FA84E); }
.ev-tarjeta.ev-encasa { border-left-color: var(--mod-acento); }
.ev-tarjeta.ev-salida { border-left-color: #4F86B5; }
.ev-tarjeta.ev-proxima { border-left-color: var(--mod-dorado); }
.ev-casa { display: flex; align-items: center; gap: 10px; min-width: 0; }
.ev-casa .dash-miniatura { width: 46px; height: 46px; }
.ev-estado { margin-top: 5px; display: flex; flex-wrap: wrap; gap: 4px; }
.ev-pill-entrada { background: #E1EFD6; color: #2D5A12; }
.ev-pill-encasa { background: var(--mod-acento-suave); color: var(--mod-acento); }
.ev-pill-salida { background: var(--mod-azul-suave); color: var(--mod-azul); }
.ev-pill-proxima { background: var(--mod-dorado-suave); color: #8A5A00; }
.ev-cliente { min-width: 0; }
.ev-nombre { display: block; font-weight: 700; font-size: 0.9375rem; color: var(--mod-texto); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ev-nombre:hover { color: var(--mod-acento); }
.ev-fechas { font-size: 0.8125rem; color: var(--mod-texto-sec); margin-top: 2px; }
.ev-fechas i { font-size: 0.625rem; margin: 0 2px; }
.ev-extras { font-size: 0.7813rem; color: #8A5A00; margin-top: 3px; }
.ev-extras i { margin-right: 5px; }
.ev-cliente .rsv-cliente-contacto { align-items: center; }
.ev-tel { font-size: 0.8125rem; color: var(--mod-texto-sec); margin-left: 2px; }
.ev-etq { display: block; font-size: 0.6875rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--mod-texto-suave); margin-bottom: 4px; }
.ev-hora select { width: 100%; font-size: 0.8438rem; padding: 6px 8px; }
.ev-cobro b { display: block; font-size: 0.9375rem; }
.ev-cobro .ev-debe { color: #8A5A00; }
.ev-cobro .ev-pagado { color: #2D5A12; }
.ev-sub { font-size: 0.75rem; color: var(--mod-texto-suave); }
.ev-registro { display: flex; flex-wrap: wrap; gap: 5px; }
.ev-acciones { display: flex; flex-direction: column; align-items: stretch; gap: 6px; justify-self: stretch; }
.ev-acciones .btn { justify-content: center; }
.ev-iconos { display: flex; justify-content: flex-end; gap: 6px; }
@media only screen and (max-width: 1440px) {
	.ev-tarjeta { grid-template-columns: minmax(160px, 1fr) minmax(200px, 2fr) 140px 110px; }
	.ev-registro { grid-column: 1 / 3; }
	.ev-acciones { grid-column: 3 / -1; }
}
@media only screen and (max-width: 1000px) {
	.ev-tarjeta { grid-template-columns: 1fr 1fr; padding: 12px; gap: 10px; }
	.ev-casa, .ev-cliente, .ev-registro { grid-column: 1 / -1; }
	.ev-acciones { grid-column: 1 / -1; justify-self: stretch; }
	.ev-acciones { flex-direction: row; flex-wrap: wrap; }
	.ev-acciones .btn { flex: 1 1 160px; }
	.ev-iconos { margin-left: auto; }
}

/* ---------------------------------------------------------------------
   Analytics: resumen de ventas y estadísticas (año actual frente al anterior)
   --------------------------------------------------------------------- */
.ana-filtros { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; padding: 12px 16px; margin: 0 0 16px; }
.ana-filtros .campo { display: flex; flex-direction: column; gap: 4px; min-width: 150px; }
.ana-filtros .campo > span { font-size: 0.7813rem; font-weight: 600; color: var(--mod-texto-sec); }
.ana-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0 0 12px; }
.ana-kpi { padding: 14px 16px; }
.ana-kpi small { display: block; font-size: 0.75rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--mod-texto-suave); }
.ana-kpi b { display: block; font-size: 1.75rem; line-height: 1.15; margin: 4px 0 6px; color: var(--mod-texto); }
.ana-kpi-comp { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 0.8125rem; }
.ana-kpi-comp em, .ana-mini em { font-style: normal; color: var(--mod-texto-sec); }
.ana-kpi-sub { display: block; font-size: 0.75rem; color: var(--mod-texto-suave); margin-top: 6px; }
.ana-minis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; padding: 0; margin: 0 0 16px; overflow: hidden; }
.ana-mini { padding: 12px 16px; border-right: 1px solid var(--mod-salvia-suave); }
.ana-mini:last-child { border-right: 0; }
.ana-mini small { display: block; font-size: 0.75rem; color: var(--mod-texto-sec); }
.ana-mini b { display: block; font-size: 1.1875rem; margin: 2px 0 4px; }
.ana-mini span { font-size: 0.75rem; display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.ana-delta { display: inline-flex; align-items: center; padding: 1px 8px; border-radius: 999px; font-size: 0.75rem; font-weight: 700; background: var(--mod-crema); color: var(--mod-texto-sec); white-space: nowrap; }
.ana-delta.sube { background: #E1EFD6; color: #2D5A12; }
.ana-delta.baja { background: var(--mod-rojo-suave); color: var(--mod-rojo); }
.ana-rejilla { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.ana-rejilla > .card { min-width: 0; }
.ana-rejilla > .ana-ancha { grid-column: 1 / -1; }
.ana-grafico { position: relative; width: 100%; }
.ana-datos { margin-top: 12px; }
.ana-datos > summary { cursor: pointer; font-size: 0.8125rem; font-weight: 600; color: var(--mod-acento); }
.ana-tabla-wrap { overflow-x: auto; margin-top: 8px; }
.ana-tabla td, .ana-tabla th { white-space: nowrap; }
.ana-tabla td:first-child { white-space: normal; min-width: 140px; }
.ana-ant { color: var(--mod-texto-suave); font-weight: 500; font-size: 0.7813rem; }
.ana-fila-sel td { background: var(--mod-dorado-suave); }
@media only screen and (max-width: 1440px) {
	.ana-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ana-minis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.ana-mini:nth-child(3) { border-right: 0; }
}
@media only screen and (max-width: 800px) {
	.ana-rejilla { grid-template-columns: minmax(0, 1fr); }
	.ana-minis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ana-mini { border-right: 0; border-bottom: 1px solid var(--mod-salvia-suave); }
	.ana-kpi b { font-size: 1.4375rem; }
	.ana-filtros .campo { flex: 1 1 140px; min-width: 0; }
}

/* ---------------------------------------------------------------------
   Listas que en el móvil pasan a tarjetas con la etiqueta de cada dato (Contabilidad)
   --------------------------------------------------------------------- */
.conta-bloque { margin: 0 0 16px; }
.conta-bloque .card-titulo form select { font-size: 0.8125rem; padding: 5px 8px; }
.lista-tarjetas .cell { text-align: left; }
.lista-tarjetas .cell.num { text-align: right; white-space: nowrap; }
.lista-tarjetas .row.TituloTabla .cell.num { text-align: right; }
.lista-tarjetas .lt-total .cell { background: var(--mod-crema); font-weight: 700; }
.lista-tarjetas .lt-acciones { text-align: right; width: 1%; white-space: nowrap; }
.lista-tarjetas button.rsv-ico { border: 0; cursor: pointer; padding: 0; }
.conta-editor { margin-top: 14px; border-top: 1px solid var(--mod-salvia-suave); padding-top: 10px; }
.conta-editor iframe { border: 0; border-radius: 10px; background: var(--mod-crema); }
@media only screen and (max-width: 1000px) {
	.lista-tarjetas .row.TituloTabla { display: none; }
	.lista-tarjetas .row { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 12px; padding: 10px 12px; }
	.lista-tarjetas .row .cell { display: block; padding: 0; text-align: left; }
	.lista-tarjetas .row .cell.num { text-align: left; }
	.lista-tarjetas .row .cell[data-label]::before { content: attr(data-label); display: block; font-size: 0.6875rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--mod-texto-suave); }
	.lista-tarjetas .row .cell.lt-principal { grid-column: 1 / -1; font-weight: 700; font-size: 0.9375rem; order: -1; }
	.lista-tarjetas .row .cell.lt-principal::before { display: none; }
	.lista-tarjetas .row .cell.lt-acciones { grid-column: 1 / -1; text-align: right; width: auto; }
	.lista-tarjetas .row .cell:empty { display: none; }
	.lista-tarjetas .lt-total .cell { background: transparent; }
	.lista-tarjetas .row.lt-total { background: var(--mod-crema); }
}

/* ---------- Administración de precios (admin/admin_precios.php) ---------- */
.pr-bloque { margin-bottom: 16px; }
.pr-bloque > .pagina-sub { margin: 0 0 8px; }
.pr-oculta { display: none; }
.pr-color { display: inline-block; width: 12px; height: 12px; border-radius: 3px; border: 1px solid #CBD3BD; margin-right: 8px; vertical-align: -1px; }
.pr-temporadas td, .pr-tabla td, .pr-ofertas td { padding: 7px 6px; vertical-align: middle; }
.pr-temporadas select, .pr-temporadas input, .pr-tabla input, .pr-ofertas input, .pr-ofertas select { font-size: 0.875rem; padding: 6px 8px; border: 1px solid var(--mod-borde); border-radius: 6px; background: #fff; box-sizing: border-box; }
.pr-fecha { width: 112px; cursor: pointer; }
.pr-etiqueta { width: 150px; }
.pr-temp { min-width: 100px; }
.pr-temporadas td:first-child, .pr-tabla td:first-child { white-space: nowrap; }
.pr-min { width: 64px; }
.pr-tabla input { width: 86px; text-align: right; }
.pr-ofertas input[name^="o_titulo"] { width: 160px; }
.pr-ofertas input[name^="o_texto"] { width: 220px; }
.pr-descuento { white-space: nowrap; }
.pr-descuento input { width: 64px; text-align: right; margin-right: 4px; }
.pr-caducada { opacity: .55; }
.pr-normal td { background: var(--mod-crema); }
.pr-dias { display: inline-flex; gap: 3px; }
.pr-dias label { position: relative; cursor: pointer; }
.pr-dias input { position: absolute; opacity: 0; pointer-events: none; }
.pr-dias span { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; font-size: 0.7188rem; font-weight: 700; border: 1px solid var(--mod-borde); color: var(--mod-texto-suave); background: #fff; text-decoration: line-through; }
.pr-dias input:checked + span { background: var(--mod-acento); border-color: var(--mod-acento); color: #fff; text-decoration: none; }
.pr-dias input:focus-visible + span { outline: 2px solid var(--mod-dorado); outline-offset: 1px; }
.pr-borrar { cursor: pointer; color: var(--mod-texto-suave); display: inline-flex; align-items: center; gap: 4px; }
.pr-borrar input { accent-color: #C0453A; }
tr:has(.pr-borrar input:checked) td { text-decoration: line-through; opacity: .5; }
#pr-anadir { margin-top: 8px; }
.pr-copiar { position: relative; }
.pr-copiar summary { list-style: none; }
.pr-copiar summary::-webkit-details-marker { display: none; }
.pr-copiar-cuerpo { position: absolute; z-index: 20; top: calc(100% + 6px); left: 0; width: 280px; background: #fff; border: 1px solid var(--mod-borde); border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.12); padding: 12px; display: flex; flex-direction: column; gap: 10px; }
.pr-copiar-cuerpo .campo { min-width: 0; }
.pr-copiar-cuerpo p { margin: 0; font-size: 0.7813rem; }
.pr-copiar-tramo { margin-left: 6px; border: 0; background: none; color: var(--mod-acento); cursor: pointer; padding: 2px 4px; }
.pr-previa { white-space: nowrap; }
.pr-n { display: inline-flex; flex-direction: column; align-items: center; min-width: 50px; padding: 2px 4px; font-size: 0.7813rem; font-weight: 600; color: var(--mod-texto); border-right: 1px solid var(--mod-salvia-suave); }
.pr-n:last-child { border-right: 0; }
.pr-n small { font-size: 0.6563rem; font-weight: 500; color: var(--mod-texto-suave); }
.pr-n.pr-raro { color: #C0453A; }
.pr-leyenda-campos { margin: -4px 0 12px; font-size: 0.7813rem; }
.pr-guardar { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 20px; }
.pr-anio { margin-top: 16px; display: flex; flex-direction: column; gap: 3px; }
.pr-mes { display: flex; align-items: center; gap: 2px; }
.pr-mes-nombre { width: 32px; flex: none; font-size: 0.7188rem; font-weight: 600; color: var(--mod-texto-sec); text-transform: uppercase; }
.pr-dia { position: relative; flex: 1 1 0; max-width: 22px; height: 16px; border-radius: 3px; border: 1px solid #DCE2D2; box-sizing: border-box; }
.pr-dia.finde { border-color: #A9B59A; }
.pr-dia.sin-entrada::after, .pr-ley-sin::after { content: ""; position: absolute; left: 50%; top: 50%; width: 6px; height: 6px; margin: -3px 0 0 -3px; border-radius: 50%; background: #2B2B28; }
.dispo-leyenda i.pr-ley-sin { position: relative; }
@media (max-width: 767px) {
	.pr-mes { gap: 1px; }
	.pr-mes-nombre { width: 26px; }
	.pr-dia { height: 12px; border-radius: 2px; }
	.pr-dia.sin-entrada::after { width: 4px; height: 4px; margin: -2px 0 0 -2px; }
	.pr-copiar-cuerpo { left: auto; right: 0; }
}
.pr-tabla .pr-fila td { border-bottom: 0; padding-bottom: 2px; }
.pr-previa-fila td { padding-top: 2px; padding-bottom: 12px; }
.pr-previa-etq { font-size: 0.7188rem; color: var(--mod-texto-suave); text-transform: uppercase; letter-spacing: .05em; }
.pr-previa { white-space: normal; }

/* ---------- Popup de pagos (anticipo pagado, editar pago) ---------- */
.pa-dialogo { border: 0; border-radius: 14px; padding: 0; width: min(380px, calc(100vw - 32px)); box-shadow: 0 20px 50px rgba(0,0,0,.25); font-family: var(--mod-fuente); color: var(--mod-texto); }
.pa-dialogo::backdrop { background: rgba(20, 30, 24, .45); }
.pa-form { display: flex; flex-direction: column; gap: 12px; padding: 20px; margin: 0; }
.pa-cab { display: flex; gap: 12px; align-items: center; }
.pa-cab > i { width: 38px; height: 38px; border-radius: 50%; background: var(--mod-acento); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 1rem; flex: none; }
.pa-cab b { display: block; font-size: 1.0625rem; }
.pa-cab small { color: var(--mod-texto-suave); font-size: 0.7813rem; }
.pa-importe { background: var(--mod-crema); border-radius: 10px; padding: 12px 14px; display: flex; flex-direction: column; }
.pa-importe span { font-size: 0.7188rem; text-transform: uppercase; letter-spacing: .05em; color: var(--mod-texto-suave); font-weight: 600; }
.pa-importe b { font-size: 1.625rem; color: var(--mod-acento); line-height: 1.2; }
.pa-importe small { color: var(--mod-texto-suave); font-size: 0.7813rem; }
.pa-campo { display: flex; flex-direction: column; gap: 4px; }
.pa-campo > span { font-size: 0.7813rem; font-weight: 600; color: var(--mod-texto-sec); }
.pa-campo input, .pa-campo select, .pa-campo textarea { font: inherit; font-size: 0.9375rem; padding: 9px 10px; border: 1px solid var(--mod-borde); border-radius: 8px; background: #fff; width: 100%; box-sizing: border-box; }
.pa-botones { display: flex; justify-content: flex-end; gap: 8px; margin-top: 4px; }
.pa-aviso { margin: 0; font-size: 0.8125rem; background: #E7F2DD; color: #2D5A12; border-radius: 8px; padding: 8px 10px; display: flex; gap: 8px; align-items: baseline; }
.pa-aviso-pendiente { background: var(--mod-dorado-suave); color: #6B4700; }
.rsv-cancel-gratis { align-self: center; }
.pagos-tabla tr.pago-pendiente td { background: #FFFBEF; }
.pagos-tabla tr.pago-pendiente .pago-importe { color: var(--mod-texto-suave); font-style: italic; }
.rsv-ico.rsv-ico-ok { color: #2D5A12; background: #E7F2DD; }

/* ---------- Partes de viajeros (PartesViajeros/viajeros.php) ---------- */
.pv-pasos { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 8px; font-size: 0.875rem; color: var(--mod-texto-sec); }
.pv-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; }
.pv-viajero { padding: 14px 16px; border-left: 4px solid var(--mod-dorado); }
.pv-viajero.pv-enviado { border-left-color: var(--mod-acento); }
.pv-cab { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.pv-num { width: 30px; height: 30px; border-radius: 50%; background: var(--mod-crema); color: var(--mod-acento); font-weight: 700; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.pv-nombre { flex: 1; min-width: 0; }
.pv-nombre b { display: block; font-size: 0.9688rem; overflow-wrap: anywhere; }
.pv-nombre small { color: var(--mod-texto-suave); font-size: 0.7813rem; }
.pv-sel { display: inline-flex; align-items: center; gap: 6px; font-size: 0.8125rem; font-weight: 600; color: #6B4700; background: var(--mod-dorado-suave); padding: 5px 10px; border-radius: 999px; cursor: pointer; white-space: nowrap; }
.pv-sel input { accent-color: var(--mod-acento); margin: 0; }
.pv-datos .dl-fila { font-size: 0.8438rem; padding: 6px 0; }
.pv-datos .dl-fila > dd { font-weight: 500; }
.pv-cod { display: block; font-size: 0.7188rem; font-weight: 500; color: var(--mod-texto-suave); }
.pv-firma { margin-top: 8px; display: flex; align-items: center; gap: 10px; }
.pv-firma span { font-size: 0.7813rem; color: var(--mod-texto-sec); }
.pv-firma img { max-height: 54px; max-width: 200px; background: #fff; border: 1px solid var(--mod-borde); border-radius: 6px; padding: 2px 6px; }
@media (max-width: 767px) { .pv-lista { grid-template-columns: 1fr; } }

/* ---------- Cancelar reserva: revisión de pagos (Reservas/cambiar_estado.php) ---------- */
.cancel-revision, .cancel-form { max-width: 760px; margin-bottom: 16px; }
.cancel-aviso { display: flex; gap: 10px; align-items: baseline; padding: 10px 12px; border-radius: 10px; margin: 0 0 8px; font-size: 0.875rem; line-height: 1.45; }
.cancel-aviso > i { flex: none; }
.cancel-t-ok { background: #E7F2DD; color: #2D5A12; }
.cancel-t-aviso { background: var(--mod-dorado-suave); color: #6B4700; }
.cancel-t-error { background: var(--mod-rojo-suave); color: #7E1F18; }
.cancel-t-info { background: var(--mod-crema); color: var(--mod-texto-sec); }
.cancel-total { margin-top: 10px; font-size: 1rem; text-align: right; }
.cancel-total b { font-size: 1.375rem; color: var(--mod-acento); }
.cancel-aplazar { margin: 10px 0 0; font-size: 0.875rem; color: var(--mod-texto-sec); }
.cancel-form { display: flex; flex-direction: column; gap: 12px; }
.cancel-form .campo { display: flex; flex-direction: column; gap: 4px; max-width: 320px; }
.cancel-form .campo > span { font-size: 0.7813rem; font-weight: 600; color: var(--mod-texto-sec); }
.cancel-check { display: flex; gap: 8px; align-items: center; font-size: 0.875rem; cursor: pointer; }
.cancel-botones { display: flex; gap: 8px; justify-content: flex-end; }

/* ---------- Limpiezas: control de pagos (Gestion/limpieza.php) ---------- */
.lp-tabla td { padding: 8px; }
.lp-tabla td.lp-debe, .lp-leyenda .lp-debe { background: #F4C7C3; color: #7E1F18; font-weight: 700; }
.lp-tabla td.lp-cero, .lp-leyenda .lp-cero { background: #CFE8D8; color: #1F5132; font-weight: 700; }
.lp-tabla td.lp-adelanto, .lp-leyenda .lp-adelanto { background: #FBE3A6; color: #6B4700; font-weight: 700; }
.lp-tabla tr.lp-pago td:nth-child(3), .lp-tabla tr.lp-pago td:nth-child(6) { color: #2D5A12; font-weight: 600; }
.lp-tabla tr.lp-pago td { background: #F3F8EE; }
.lp-tabla tr.lp-anterior td { background: var(--mod-crema); font-style: italic; }
.lp-leyenda { margin: 10px 0 0; font-size: 0.7813rem; color: var(--mod-texto-sec); line-height: 2; }
.lp-leyenda span { padding: 2px 8px; border-radius: 6px; }
.lp-detalle tr.lp-no-hecha td { opacity: .55; }
.lp-detalle .pill { text-decoration: none; white-space: nowrap; }

/* Devolución por Bizum: teléfono del cliente (Reservas/pagos.php) */
.dev-bizum { background: #E8F4F6; border: 1px solid #BFE0E6; border-radius: 10px; padding: 10px 12px; }
.dev-bizum > span { font-size: 0.7813rem; font-weight: 600; color: #1E5A66; }
.dev-tel { display: flex; align-items: center; gap: 10px; margin-top: 6px; }
.dev-tel b { font-size: 1.25rem; letter-spacing: .03em; color: #0E3F48; }
.dev-tel > i { color: #1E5A66; }
.dev-sin-tel { color: #7E1F18; font-size: 0.8438rem; }

.pa-check { display: flex; gap: 8px; align-items: flex-start; font-size: 0.8438rem; cursor: pointer; }
.pa-check input { margin-top: 3px; }

/* ---------- Ofertas de última hora (Calendario): el mismo cuadro que el shortcode [ofertas] de la web ---------- */
.of-web { margin-bottom: 16px; }
.of-web > .pagina-sub { margin: -4px 0 12px; }
.of-web-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.of-web-card { display: flex; flex-direction: column; border: 1px solid var(--mod-borde); border-radius: 14px; overflow: hidden; background: #fff; }
.of-web-foto { position: relative; aspect-ratio: 16 / 9; background: var(--mod-crema) center / cover no-repeat; }
.of-web-badge { position: absolute; top: 10px; left: 10px; background: #8C2F39; color: #fff; font-weight: 700; font-size: 0.875rem; padding: 4px 9px; border-radius: 999px; }
.of-web-cuerpo { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.of-web-tag { margin: 0; color: #8C2F39; font-weight: 600; font-size: 0.8438rem; display: flex; gap: 6px; align-items: baseline; }
.of-web-dato { margin: 0; color: var(--mod-texto-sec); font-size: 0.8438rem; }
.of-web-dato i { width: 16px; color: var(--mod-texto-suave); margin-right: 2px; }
.of-web-precio { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin-top: 2px; }
.of-web-precio s { color: var(--mod-texto-suave); }
.of-web-precio b { font-size: 1.375rem; color: var(--mod-acento); }
.of-web-precio span { background: #E7F2DD; color: #2D5A12; font-size: 0.7813rem; font-weight: 600; padding: 2px 8px; border-radius: 999px; }
.of-web-acciones { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; padding-top: 6px; }

/* Entrada de viajeros: check-in sin rellenar por el cliente */
.btn.ev-incompleto { border-color: #E9B949; color: #8A5A00; background: var(--mod-dorado-suave); }

/* ---------- Comunicación con clientes (Comunicacion/index.php): tarjetas como Entrada de viajeros ---------- */
.com-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.com-kpis a.pagos-kpi { text-decoration: none; color: inherit; }
.com-kpis small i { margin-right: 4px; }
.ev-tarjeta.com-tarjeta { grid-template-columns: minmax(170px, 1fr) minmax(220px, 2fr) minmax(160px, 1fr) 130px minmax(170px, auto); }
.com-tarjeta.com-urgente { border-left-color: #C0453A; }
.com-tarjeta.com-pendiente { border-left-color: var(--mod-dorado); }
.com-tarjeta.com-enviado { border-left-color: var(--mod-acento); opacity: .8; }
body.com-sin-enviados .com-tarjeta.com-enviado { display: none; }
.com-aviso { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.com-contacto { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 4px; font-size: 0.8125rem; color: var(--mod-texto-sec); }
.com-contacto i { margin-right: 5px; color: var(--mod-texto-suave); }
.com-sin-contacto { color: #7E1F18; }
.ev-grupo-titulo > i { color: var(--mod-acento); font-size: 1rem; }
@media only screen and (max-width: 1440px) {
	.ev-tarjeta.com-tarjeta { grid-template-columns: minmax(160px, 1fr) minmax(200px, 2fr) minmax(150px, 1fr); }
	.com-tarjeta .com-hora { grid-column: 1 / 2; }
	.com-tarjeta .ev-acciones { grid-column: 2 / -1; }
}
@media only screen and (max-width: 1000px) {
	.com-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ev-tarjeta.com-tarjeta { grid-template-columns: 1fr 1fr; }
	.com-tarjeta .com-aviso, .com-tarjeta .com-hora { grid-column: auto; }
	.com-tarjeta .ev-acciones { grid-column: 1 / -1; }
}
.com-tarjeta .ev-acciones { flex-direction: row; flex-wrap: wrap; justify-content: flex-end; align-items: center; }

/* ---------- Entrada de viajeros, paso 4: un viajero por tarjeta (antes una tabla de 27 columnas) ---------- */
.vj-lista { display: flex; flex-direction: column; gap: 14px; margin: 0 0 14px; }
.vj-tarjeta { padding: 14px 16px; border-left: 4px solid var(--mod-borde); }
.vj-tarjeta.vj-guardado { border-left-color: var(--mod-acento); }
.vj-tarjeta.vj-nuevo { border-left-color: #4F86B5; }
.vj-tarjeta.vj-aviso { border-left-color: var(--mod-dorado); }
.vj-tarjeta.vj-error { border-left-color: #C0453A; background: #FFFAF9; }
.vj-cab { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 10px; }
.vj-num { width: 28px; height: 28px; border-radius: 50%; background: var(--mod-crema); color: var(--mod-acento); font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.vj-nombre { font-size: 1rem; margin-right: auto; }
.vj-quitar { border: 0; cursor: pointer; }
.vj-cuerpo { display: grid; grid-template-columns: 1fr 180px; gap: 14px; }
.vj-grupos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.vj-grupo { border: 1px solid var(--mod-salvia-suave); border-radius: 10px; padding: 8px 12px 12px; margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px 10px; min-width: 0; }
.vj-grupo legend { font-size: 0.7188rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--mod-texto-suave); padding: 0 6px; }
.vj-campo { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.vj-campo.ancho2 { grid-column: span 2; }
.vj-campo.ancho3 { grid-column: span 3; }
.vj-campo > span { font-size: 0.7188rem; font-weight: 600; color: var(--mod-texto-sec); }
.vj-campo input, .vj-campo select { width: 100%; box-sizing: border-box; font-size: 0.875rem; padding: 6px 8px; }
.vj-fecha { display: flex; align-items: center; gap: 3px; }
.vj-fecha input { width: 38px !important; text-align: center; padding: 6px 2px !important; }
.vj-fecha input.vj-anio { width: 56px !important; }
.vj-firma { display: flex; flex-direction: column; gap: 6px; align-items: stretch; }
.vj-firma span { font-size: 0.7188rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--mod-texto-suave); }
.vj-firma img { width: 100%; max-height: 110px; object-fit: contain; background: #fff; border: 1px solid var(--mod-borde); border-radius: 8px; }
.vj-firma em { color: var(--mod-texto-suave); font-size: 0.8125rem; }
.vj-msg { margin: 10px 0 0; padding: 6px 10px; border-radius: 8px; font-size: 0.8125rem; }
.vj-msg-error { background: var(--mod-rojo-suave); color: #7E1F18; }
.vj-msg-aviso { background: var(--mod-dorado-suave); color: #6B4700; }
.vj-msg-corregido { background: #FFF3E0; color: #BF360C; }
.vj-acciones-pie { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; margin: 0 0 20px; }
@media only screen and (max-width: 1440px) { .vj-grupos { grid-template-columns: 1fr; } }
@media only screen and (max-width: 767px) {
	.vj-cuerpo { grid-template-columns: 1fr; }
	.vj-grupo { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.vj-campo.ancho3 { grid-column: span 2; }
}

/* Formulario de nueva / editar reserva (Reservas/modificar_reserva.php) */
.fr-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.fr-grid .fr-bloque { margin: 0; }
.fr-grid .fr-ancho { grid-column: 1 / -1; }
.fr-buscar { display: flex; flex-direction: column; gap: 5px; margin-bottom: 12px; padding: 10px 12px; background: var(--mod-salvia-suave); border-radius: 10px; }
.fr-buscar > span { font-size: 0.7813rem; font-weight: 600; color: var(--mod-texto-sec); }
.fr-buscar input { width: 100%; }
.fr-bloque .price-block { border: 0; margin: 0; }
.fr-guardar { display: flex; justify-content: flex-end; gap: 10px; margin: 18px 0 8px; }
@media only screen and (max-width: 1000px) {
	.fr-grid { grid-template-columns: 1fr; }
}

/* Ofertas (admin/ofertas.php, lista en Precios y Calendario) */
.of-form { border-color: var(--mod-acento); }
.of-form .of-ayuda { grid-column: span 4; align-self: end; margin: 0 0 8px; }
.of-lineas-titulo { font-weight: 600; margin: 16px 0 8px; }
.of-lineas { display: flex; flex-direction: column; gap: 8px; }
.of-lineas[hidden], .of-sin-casa[hidden] { display: none; }
.of-linea { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 8px 12px; background: var(--mod-salvia-suave); border-radius: 10px; }
.of-linea .of-plazas { min-width: 100px; font-weight: 600; display: inline-flex; align-items: center; gap: 6px; }
.of-linea .of-valor { width: 110px; text-align: right; }
.of-botones { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.of-botones .of-borrar { margin-right: auto; color: var(--mod-rojo); }
.of-filtros { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px; margin-bottom: 12px; }
.of-filtros .campo { display: flex; flex-direction: column; gap: 4px; min-width: 180px; }
.of-filtros .campo > span { font-size: 0.7813rem; font-weight: 600; color: var(--mod-texto-sec); }
.of-descuentos { display: flex; flex-wrap: wrap; gap: 6px; }
.of-descuentos span { display: inline-flex; align-items: baseline; gap: 5px; padding: 3px 9px; border-radius: 999px; background: var(--mod-dorado-suave); color: #7A5200; font-weight: 700; white-space: nowrap; }
.of-descuentos small { font-weight: 500; color: var(--mod-texto-sec); }
.of-tabla .of-pasada td { opacity: .6; }
.of-tabla td { vertical-align: middle; }
@media only screen and (max-width: 767px) {
	.of-form .of-ayuda { grid-column: 1 / -1; }
}
.of-web-pie { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--mod-borde); }
.of-web .dash-vacio { margin-bottom: 4px; }

/* Opiniones (Reservas/opinion.php, opiniones.php y ficha de la reserva) */
.op-estrellas { color: #D4A017; white-space: nowrap; letter-spacing: 1px; }
.op-estrellas .far { color: var(--mod-borde); }
.op-lista { display: flex; flex-direction: column; gap: 14px; }
.op-lista .op-tarjeta { background: var(--mod-blanco, #fff); border: 1px solid var(--mod-borde); border-radius: var(--mod-radio-card); padding: 16px 18px; }
.op-cab { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 8px; }
.op-cab .op-fecha { color: var(--mod-texto-sec); font-size: 0.8125rem; }
.op-titulo { font-weight: 700; margin: 4px 0; }
.op-texto { margin: 6px 0; line-height: 1.5; }
.op-texto i { margin-right: 6px; }
.op-pos i { color: #2D5A12; }
.op-neg i { color: var(--mod-rojo); }
.op-notas { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0; }
.op-notas span { background: var(--mod-crema); border-radius: 999px; padding: 3px 10px; font-size: 0.8125rem; color: var(--mod-texto-sec); }
.op-notas span i { margin-right: 5px; }
.op-fotos { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; }
.op-fotos img { width: 110px; height: 80px; object-fit: cover; border-radius: 8px; }
.op-respuesta { border-left: 3px solid var(--mod-acento); background: var(--mod-salvia-suave); border-radius: 0 8px 8px 0; padding: 8px 12px; margin: 10px 0; }
.op-respuesta small { display: block; font-weight: 600; color: var(--mod-texto-sec); margin-bottom: 2px; }
.op-tarjeta .btn { margin-top: 6px; }
.op-stats { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; margin-bottom: 16px; }
.op-stat { display: flex; flex-direction: column; gap: 2px; margin: 0; padding: 12px 14px; text-decoration: none; color: inherit; }
.op-stat small { color: var(--mod-texto-sec); font-size: 0.7813rem; }
.op-stat b { font-size: 1.375rem; }
.op-stat-aviso b { color: var(--mod-rojo); }
.op-filtros-2 { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 12px 0; }
.op-filtros-2 .pill { text-decoration: none; }
.op-filtros-2 .pill i { margin-right: 4px; }
.op-filtros-2 select { width: auto; }
.op-tabla td { vertical-align: top; }
.op-extracto { max-width: 520px; }

/* Revisión de reseñas (admin/resenas.php) */
.rv-estados .dash-count { margin-left: 4px; }
.rv-filtros { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 12px 0 4px; }
.rv-filtros select, .rv-filtros input[type=search] { width: auto; min-width: 170px; }
.rv-tarjeta { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.rv-resena { position: relative; min-width: 0; }
.rv-resena .op-tarjeta .btn { margin-top: 4px; }
.rv-revisada { margin-top: 6px; }
.rv-asignar { display: flex; flex-direction: column; gap: 14px; border-left: 1px solid var(--mod-borde); padding-left: 18px; min-width: 0; }
.rv-bloque > small { display: block; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--mod-texto-sec); margin-bottom: 6px; }
.rv-casa select { width: 100%; }
.rv-actual { margin-bottom: 8px; }
.rv-actual .pago-concepto { display: block; }
.rv-candidatas { list-style: none; margin: 0 0 10px; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.rv-candidatas li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 7px 10px; border: 1px solid var(--mod-borde); border-radius: 10px; }
.rv-candidatas li.rv-coincide { border-color: var(--mod-acento); background: var(--mod-salvia-suave); }
.rv-candidatas li > span { min-width: 0; }
.rv-candidatas .pago-concepto { display: block; }
.rv-candidatas .fa-check { color: #2D5A12; }
.rv-form { display: inline-flex; margin: 0; }
.rv-manual { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.rv-numero { gap: 6px; }
.rv-numero input { width: 110px; }
.rv-paginas { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 20px; }
.op-nota10 { font-weight: 700; color: #003580; font-size: 0.8125rem; }
@media only screen and (max-width: 1000px) {
	.rv-tarjeta { grid-template-columns: 1fr; }
	.rv-asignar { border-left: 0; padding-left: 0; border-top: 1px solid var(--mod-borde); padding-top: 14px; }
}
.rv-huesped { margin-top: 12px; border-top: 1px dashed var(--mod-borde); padding-top: 10px; }
.rv-huesped summary { cursor: pointer; font-weight: 600; color: var(--mod-acento); display: inline-flex; align-items: center; gap: 6px; }
.rv-huesped-form { display: flex; gap: 6px; margin: 10px 0; }
.rv-huesped-form input[type=search] { flex: 1; min-width: 0; }
.rv-candidatas li.rv-ocupada { opacity: .65; background: var(--mod-crema); }
.rv-candidatas li > .pill, .rv-candidatas li > .rv-form { flex-shrink: 0; white-space: nowrap; }
.rv-ocupada-pill i { margin-right: 4px; }

/* Avatar y fotos de las reseñas */
.op-avatar { position: relative; width: 32px; height: 32px; border-radius: 50%; overflow: hidden; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; background: var(--mod-salvia-suave); color: var(--mod-acento); font-weight: 700; font-size: 0.875rem; }
.op-avatar img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.op-autor { display: inline-flex; align-items: center; gap: 8px; }
.op-autor .op-avatar { width: 28px; height: 28px; font-size: 0.75rem; }
.op-fotos-mini { margin: 6px 0; gap: 6px; }
.op-fotos-mini img { width: 64px; height: 48px; border-radius: 6px; }

/* Ficha de cliente (Reservas/detalle_cliente.php) */
.cli-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.cli-grid .card { margin: 0 0 16px; }
.cli-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 12px; }
.cli-stats > div { background: var(--mod-salvia-suave); border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; }
.cli-stats small { color: var(--mod-texto-sec); font-size: 0.75rem; }
.cli-stats b { font-size: 1.25rem; }
.cli-borrar { border-color: var(--mod-rojo); }
.cli-borrar form { display: flex; gap: 8px; }
.cli-reservas tr[data-href] { cursor: pointer; }
@media only screen and (max-width: 1000px) { .cli-grid { grid-template-columns: 1fr; } }

/* Factura (Reservas/factura.php y modificar_factura.php) */
.fac-grid { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(0, 2fr); gap: 16px; align-items: start; }
.fac-grid .card { margin: 0 0 16px; }
.fac-pdf { padding: 8px; }
.fac-pdf .resourcepdf { width: 100%; margin: 0; }
.fac-pdf embed { width: 100%; min-height: 70vh; border: 0; border-radius: 8px; }
.fac-dato { padding: 8px 10px; background: var(--mod-crema); border-radius: 8px; font-weight: 600; }
@media only screen and (max-width: 1000px) { .fac-grid { grid-template-columns: 1fr; } }

/* Entrada de viajeros, paso OCR (EntradaViajeros/paso3.php) */
.ocr-texto { width: 100%; font-family: ui-monospace, Consolas, monospace; font-size: 0.8125rem; text-transform: uppercase; }

/* Contabilidad: pestañas y formulario de gastos */
.conta-tabs { margin: 0 0 16px; }
.conta-tabs a i { margin-right: 6px; }
.conta-tabs .dash-count { margin-left: 4px; }
.conta-tab[hidden] { display: none; }
.conta-gastos-acc { display: inline-flex; align-items: center; gap: 8px; }
.conta-gastos-acc form { margin: 0; }
.gasto-campos { border: 0; margin: 0; padding: 0; min-width: 0; }
.gasto-campos[disabled] { opacity: .75; }
.gasto-lineas { width: 100%; border-collapse: collapse; }
.gasto-lineas th { text-align: left; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--mod-texto-sec); padding: 0 6px 6px; }
.gasto-lineas td { padding: 4px 6px; vertical-align: middle; }
.gasto-lineas input { width: 100%; }
.gasto-lineas .gasto-tipo { max-width: 90px; }
.gasto-lineas .num { text-align: right; white-space: nowrap; }
.gasto-lineas tfoot td { border-top: 1px solid var(--mod-borde); padding-top: 8px; color: var(--mod-texto-sec); }
.gasto-lineas .gasto-total td { font-size: 1rem; color: var(--mod-texto); }

/* Gestión: portada y clientes */
.gest-accesos { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.gest-acceso { display: flex; flex-direction: column; gap: 4px; margin: 0; text-decoration: none; color: inherit; transition: transform .15s, box-shadow .15s; }
.gest-acceso:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,.08); }
.gest-acceso i { font-size: 1.375rem; color: var(--mod-acento); margin-bottom: 6px; }
.gest-acceso b { font-size: 1rem; }
.gest-acceso span { color: var(--mod-texto-sec); font-size: 0.8125rem; }
.cli-buscar { flex: 1; min-width: 240px; }
.cli-lista tr[data-href] { cursor: pointer; }
.cli-lista td { vertical-align: middle; }

/* Cerrar fechas */
.cf-grid { display: grid; grid-template-columns: minmax(280px, 1fr) minmax(0, 1.6fr); gap: 16px; align-items: start; }
.cf-grid > .card { margin: 0 0 16px; }
.cf-grid .Filtros { margin-bottom: 10px; }
.cf-actual td { background: var(--mod-salvia-suave); }
@media only screen and (max-width: 1000px) { .cf-grid { grid-template-columns: 1fr; } }

/* Check-in online (PartesViajeros/checkin-online.php) */
.ck-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.ck-grid > .card { margin: 0 0 16px; }
.ck-enlace { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--mod-borde); }
.ck-enlace > div:first-child { display: flex; flex-direction: column; min-width: 0; }
.ck-botones { display: flex; gap: 6px; flex-shrink: 0; }
.ck-enlace + .btn { margin-top: 12px; }
@media only screen and (max-width: 1000px) { .ck-grid { grid-template-columns: 1fr; } }

/* Envío de partes a SES.Hospedajes */
.ses-pasos { margin: 0 0 8px; padding-left: 22px; display: flex; flex-direction: column; gap: 10px; }
.ses-pasos li > div { margin-top: 4px; color: var(--mod-texto-sec); }
.ses-xml summary { cursor: pointer; font-weight: 600; color: var(--mod-acento); margin-top: 8px; }
.ses-xml pre { max-height: 420px; overflow: auto; background: var(--mod-crema); padding: 12px; border-radius: 8px; font-size: 0.75rem; }
.ana-anterior .card-titulo { color: var(--mod-texto-sec); }
.ana-fuente select { max-width: 170px; }
.ana-fuente .pago-concepto { display: block; }
.ana-detalle td { vertical-align: middle; }

/* Encuestas (Analytics/Encuestas): la tabla de maquetación exterior como tarjetas */
.enc-layout { width: 100%; border-collapse: separate; border-spacing: 16px 0; margin: 0 -16px; }
.enc-layout > tbody > tr > td { vertical-align: top; background: var(--mod-blanco, #fff); border: 1px solid var(--mod-borde); border-radius: var(--mod-radio-card); padding: 14px; }
.enc-layout .Tabla { width: 100%; }
@media only screen and (max-width: 1000px) { .enc-layout, .enc-layout > tbody, .enc-layout > tbody > tr, .enc-layout > tbody > tr > td { display: block; width: auto !important; margin: 0; } .enc-layout > tbody > tr > td { margin-bottom: 16px; } }

/* Administrar › Configuración / Usuarios: el editor de tablas (TableEdit) dentro de una tarjeta.
   TableEdit pinta con estilos en línea (barras gris oscuro, anchos fijos), de ahí los !important acotados a .adm-tabla */
.adm-tabla { overflow-x: auto; }
.adm-tabla .mte_content { font-family: var(--mod-fuente); color: var(--mod-texto); font-size: 0.8125rem; }
.adm-tabla .mte_content > div, .adm-tabla .mte_content > table, .adm-tabla .mte_content div[style*="width"], .adm-tabla .mte_content table[style*="width"] { width: 100% !important; max-width: 100%; }
.adm-tabla .mte_content div[style*="#454545"] { background: var(--mod-crema) !important; border-radius: var(--mod-radio); margin-bottom: 8px !important; }
.adm-tabla .mte_content table { border: 0; border-collapse: collapse; }
.adm-tabla .mte_content tr[style*="#626262"] { background: transparent !important; color: var(--mod-texto-sec) !important; border-bottom: 2px solid var(--mod-borde); }
.adm-tabla .mte_head, .adm-tabla a.mte_head { color: var(--mod-texto-sec); font-size: 0.75rem; text-transform: uppercase; letter-spacing: .03em; }
.adm-tabla .mte_content tr[style*="background"]:not([style*="#626262"]) { background: transparent !important; border-bottom: 1px solid var(--mod-borde); }
.adm-tabla .mte_content tr[style*="background"]:not([style*="#626262"]):hover { background: var(--mod-salvia-suave) !important; }
.adm-tabla .mte_content td { font-size: 0.8125rem; padding: 8px 10px; }
.adm-tabla .mte_content input[type=text], .adm-tabla .mte_content input:not([type]), .adm-tabla .mte_content textarea, .adm-tabla .mte_content select { font-family: inherit; font-size: 0.875rem; border: 1px solid var(--mod-borde-fuerte) !important; border-radius: var(--mod-radio); padding: 5px 8px; height: auto; background: #fff; }
.adm-tabla .mte_content button, .adm-tabla .mte_content input[type=submit] { font-family: inherit; font-size: 0.8125rem; font-weight: 600; height: auto; min-width: 0; padding: 7px 14px; border-radius: 999px; border: 1px solid var(--mod-acento) !important; background: var(--mod-acento); color: #fff; cursor: pointer; }
.adm-tabla .mte_content form[method=get] input[type=submit] { background: #fff; color: var(--mod-acento); }
.adm-tabla .mte_content img { vertical-align: middle; }
.adm-tabla .mte_content td.mte_nav { border-color: var(--mod-borde) !important; border-radius: 6px; }
.adm-tabla .mte_content td.mte_nav[style*="#808080"] { background: var(--mod-acento) !important; }
.adm-tabla .mte_mess { border-radius: var(--mod-radio); }
.adm-subtitulo { margin-top: 18px; }

/* Administrar › Base de datos */
.bd-consulta { font-family: Consolas, "Courier New", monospace; font-size: 0.8125rem; }
.bd-resultado { overflow: auto; max-height: 70vh; }
.bd-resultado td { white-space: nowrap; max-width: 380px; overflow: hidden; text-overflow: ellipsis; }

/* Administrar › iCal */
.ical-tabla { overflow-x: auto; margin-bottom: 12px; }
.ical-tabla th.ical-canal, .ical-tabla td.ical-canal { text-align: center; }
.ical-tabla input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--mod-acento); cursor: pointer; }
.ical-tabla td:nth-child(-n+2) { white-space: nowrap; }
.ical-tabla th.ical-canal { font-size: 0.6875rem; }
.ical-nuevo { max-width: 420px; }

/* Administrar › Probar precios */
.pp-layout { display: grid; grid-template-columns: minmax(0, 3fr) minmax(280px, 2fr); gap: 16px; align-items: start; }
.pp-layout > .card { margin: 0; }
.pp-layout [hidden] { display: none !important; }
.pp-extras { margin-top: 10px; }
.pp-extras input { width: 80px; }
.pp-resultado { position: sticky; top: 76px; }
.pp-tachado { text-decoration: line-through; color: var(--mod-texto-suave); font-size: 0.8125rem; }
.pp-oferta { margin: 10px 0 0; padding: 8px 12px; border-radius: var(--mod-radio); background: var(--mod-dorado-suave); color: var(--mod-dorado-oscuro); font-size: 0.8438rem; }
.pp-total { display: flex; justify-content: space-between; align-items: baseline; margin-top: 14px; padding-top: 12px; border-top: 2px solid var(--mod-borde); font-size: 0.9375rem; }
.pp-total b { font-size: 1.625rem; color: var(--mod-acento); }
.pp-anticipo { margin-top: 4px; text-align: right; color: var(--mod-texto-sec); font-size: 0.8438rem; }
.pp-resultado .mensaje { margin-top: 12px; }
@media only screen and (max-width: 1000px) { .pp-layout { grid-template-columns: 1fr; } .pp-resultado { position: static; } }

/* Utilidades › Gestión de portales */
.portales { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; margin-top: 16px; }
.portales .portal { margin: 0; display: flex; flex-direction: column; gap: 10px; }
.portal-enlaces { display: flex; flex-wrap: wrap; gap: 6px; }
.portal-fichas { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 0.8438rem; }
.portal-fichas a { color: var(--mod-acento); font-weight: 600; text-decoration: none; }
.portal-fichas a:hover { text-decoration: underline; }
.portal-fichas .fa-external-link-alt { font-size: 0.625rem; opacity: .6; }

/* Utilidades › Calcular NIF */
.nif-layout { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; align-items: start; }
.nif-layout > .card { margin: 0; }
.nif-layout .campo { display: flex; flex-direction: column; gap: 6px; }
.nif-layout .campo > span { font-size: 0.7813rem; font-weight: 600; color: var(--mod-texto-sec); }
.nif-layout input { font-size: 1.125rem; letter-spacing: .04em; width: 100%; box-sizing: border-box; }
.nif-resultado { margin-top: 12px; min-height: 22px; font-size: 0.9063rem; color: var(--mod-texto-sec); }
.nif-resultado i { margin-right: 6px; }
.nif-resultado.ok { color: var(--mod-acento); }
.nif-resultado.mal { color: var(--mod-rojo); }
.nif-letra { font-size: 1.25rem; color: var(--mod-acento); }
.rv-huesped-grupo { margin: 12px 0 4px; font-size: 0.8438rem; }
.rv-repetidas { border-color: var(--mod-dorado); background: var(--mod-dorado-suave); }
.rv-repetidas summary { cursor: pointer; display: flex; flex-wrap: wrap; gap: 6px; align-items: baseline; }
.rv-repetidas summary i { color: var(--mod-dorado-oscuro); }
.rv-repetidas ul { margin: 10px 0 6px; padding-left: 20px; display: flex; flex-direction: column; gap: 4px; font-size: 0.875rem; }

/* Gestión › Limpiezas: estimación del mes en curso */
.lp-est { display: grid; grid-template-columns: minmax(0, 3fr) minmax(220px, 2fr); gap: 20px; align-items: start; }
.lp-est-tabla td:first-child { width: 100%; }
.lp-est-tabla tfoot td { font-weight: 600; }
.lp-est-sub td { border-top: 1px solid var(--mod-borde); font-weight: 600; }
.lp-est-total td { font-size: 0.9688rem; }
.lp-est-total .num { font-size: 1.125rem; }
.lp-est-lista ul { list-style: none; margin: 6px 0 0; padding: 0; font-size: 0.8438rem; }
.lp-est-lista .num { white-space: nowrap; }
.lp-est-lista li { display: flex; justify-content: space-between; gap: 10px; padding: 5px 0; border-bottom: 1px solid var(--mod-salvia-suave); }
@media only screen and (max-width: 900px) { .lp-est { grid-template-columns: 1fr; } }

/* Inicio: últimas reservas recibidas */
#ultimas { margin: 0; }
.dash-ver-todas { margin-left: auto; font-family: var(--mod-fuente); font-size: 0.8125rem; font-weight: 600; color: var(--mod-acento); text-decoration: none; }
.dash-ver-todas:hover { text-decoration: underline; }
.dash-ultima-datos { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; margin-left: auto; text-align: right; }
.dash-ultima-cuando { font-size: 0.7813rem; color: var(--mod-texto-sec); white-space: nowrap; }
.dash-ultima.es-cancelada .dash-item-nombre, .dash-ultima.es-cancelada .dash-item-sub { color: var(--mod-texto-suave); text-decoration: line-through; }

/* Calendario: resumen de la búsqueda en dos líneas y «Libre / Ocupada» más visible */
.cal-resumen-txt { display: flex; flex-direction: column; gap: 2px; }
.cal-casa-foto .pill { font-size: 0.8438rem; padding: 4px 12px; }
.cal-casa-foto .pill i { font-size: 0.7813rem; }

/* Móvil: campos de formulario con al menos 16 px de letra; con menos, Safari de iPhone amplía la página al tocarlos
   (ahora que el zoom con dos dedos está permitido). Con la letra grande del sistema crecen con ella. */
@media only screen and (max-width: 1000px) {
	.Contenido input[type=text], .Contenido input[type=number], .Contenido input[type=email],
	.Contenido input[type=tel], .Contenido input[type=password], .Contenido input[type=date],
	.Contenido input[type=time], .Contenido input[type=search], .Contenido input[type=url],
	.Contenido input:not([type]), .Contenido select, .Contenido textarea { font-size: max(1rem, 16px); }
}

/* Letra grande del móvil: la barra inferior crece con ella pero con tope (6 pestañas en 375 px) y los nombres
   que no quepan se cortan con «…» en vez de montarse; el hueco del final de la página sigue su altura.
*/
@media only screen and (max-width: 1000px) {
	body { padding-bottom: calc(52px + min(1.75rem, 42px)); }
	.topbar-nav a { font-size: min(0.6563rem, 13px); }
	.topbar-nav a i { font-size: min(1.0625rem, 24px); }
	.topbar-nav a span { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}

/* Móvil (y letra grande): nada empuja la página hacia los lados. Los títulos de tarjeta con filtros pasan a otra
   línea, los desplegables no superan el ancho y las tablas de desglose se desplazan dentro de su tarjeta. */
@media only screen and (max-width: 1000px) {
	.card-titulo { flex-wrap: wrap; row-gap: 6px; }
	.card-titulo .card-accion { max-width: 100%; }
	.Contenido select { max-width: 100%; }
	.card:has(.rsv-desglose) { overflow-x: auto; }
	.pp-layout { grid-template-columns: minmax(0, 1fr); }
	.rsv-grid > * { min-width: 0; }
	.card .btn { white-space: normal; max-width: 100%; text-align: left; }
}

/* Ficha de reserva: precio y extras en el móvil (cantidad × noches × precio debajo del concepto) */
.rsv-desglose-sub { display: none; font-size: 0.75rem; color: var(--mod-texto-sec); font-weight: 500; margin-top: 2px; }
.rsv-desglose .solo-estrecho { display: none; }
@media only screen and (max-width: 700px) {
	.rsv-desglose-movil .solo-ancho { display: none; }
	.rsv-desglose-movil .solo-estrecho { display: table-cell; }
	.rsv-desglose-movil .rsv-desglose-sub { display: block; }
	.rsv-desglose-movil td:first-child { white-space: normal; }
}
.rsv-pagos-acciones { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 12px 0 6px; }
.rsv-pagos-ver { font-size: 0.8125rem; font-weight: 600; }

/* Historial de la reserva */
.log-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.log-apunte { border: 1px solid var(--mod-borde); border-radius: var(--mod-radio); padding: 10px 12px; background: #fff; }
.log-alta { border-left: 4px solid var(--mod-acento); }
.log-cambio { border-left: 4px solid var(--mod-dorado); }
.log-borrado { border-left: 4px solid var(--mod-rojo); }
.log-cab { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-bottom: 6px; font-size: 0.875rem; }
.log-icono { width: 26px; height: 26px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--mod-crema); color: var(--mod-texto-sec); font-size: 0.75rem; }
.log-quien { color: var(--mod-texto-sec); }
.log-fecha { margin-left: auto; color: var(--mod-texto-suave); font-size: 0.8125rem; white-space: nowrap; }
.log-tabla { width: 100%; border-collapse: collapse; font-size: 0.8438rem; }
.log-tabla th { text-align: left; font-weight: 600; color: var(--mod-texto-sec); padding: 4px 10px 4px 0; width: 30%; vertical-align: top; }
.log-tabla td { padding: 4px 6px; vertical-align: top; overflow-wrap: anywhere; }
.log-antes { color: var(--mod-texto-suave); text-decoration: line-through; text-decoration-color: rgba(0,0,0,.25); }
.log-despues { font-weight: 600; }
.log-flecha { color: var(--mod-texto-suave); width: 18px; font-size: 0.6875rem; }
.log-vacio { color: var(--mod-texto-suave); font-weight: 400; }
.log-largo summary { cursor: pointer; }
@media only screen and (max-width: 700px) {
	.log-tabla, .log-tabla tbody, .log-tabla tr { display: block; }
	.log-tabla tr { padding: 6px 0; border-top: 1px solid var(--mod-salvia-suave); }
	.log-tabla th { display: block; width: auto; padding: 0 0 2px; }
	.log-tabla td { display: inline; padding: 0 4px 0 0; }
}

/* Reservas › Opiniones: estado del enlace con la reserva en cada fila */
.op-enlace { display: inline-flex; flex-wrap: wrap; gap: 4px; }
.op-tabla tr.op-sin-enlazar td:first-child { box-shadow: inset 4px 0 0 var(--mod-rojo); }
.op-tabla tr.op-sin-enlazar { background: #FDF6F5; }
.op-tabla tr.op-enlazada td:first-child { box-shadow: inset 4px 0 0 #7FB069; }
.op-tabla tr.op-ninguna td:first-child { box-shadow: inset 4px 0 0 var(--mod-borde-fuerte); }

/* Calendario: buscador con el aspecto del de la web (web/…/reservas/reservas-buscador.css, shortcode [reservas]):
   banda granate, campos en cajas blancas de 56 px con la etiqueta pequeña dentro, valores en negrita y botón dorado.
   En el ordenador en una fila; en el móvil (≤ 783 px, como la web) uno debajo de otro. */
.cal-b { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; background: #81152b; border-radius: 12px; padding: .9rem 1.2rem; }
.cal-b-campo { position: relative; flex: 1 1 240px; min-width: 0; }
.cal-b-fechas { flex: 1.6 1 320px; }
.cal-b-caja { position: relative; display: flex; align-items: center; width: 100%; height: 56px; padding: .85rem .8rem 0; background: #fff; color: #21252e; border: 1px solid #fff; border-radius: 8px; box-sizing: border-box; cursor: pointer; }
.cal-b-caja:hover, .cal-b-caja:focus-within { border-color: var(--mod-dorado); }
.cal-b-etq { position: absolute; top: .42rem; left: .95rem; font-size: .68rem; line-height: 1.1; color: #6b6b6b; pointer-events: none; }
.Contenido .cal-b-caja input, .Contenido .cal-b-caja select { flex: 1 1 0; min-width: 0; width: auto; height: 100%; margin: 0; padding: 0 .3rem; background: transparent; border: 0; border-radius: 0; box-shadow: none; outline: none; color: inherit; font-family: inherit; font-size: 1rem; font-weight: 600; cursor: pointer; }
.Contenido .cal-b-caja input { text-align: center; }
.Contenido .cal-b-caja select { -webkit-appearance: none; appearance: none; padding-right: 0; }
.cal-b-caja i { flex: 0 0 auto; padding: 0 .3rem; font-size: 1rem; color: #991A2E; }
/* !important: la regla general de botones de .Contenido (con varios :not) pesa más que esta */
.Contenido .cal-b-boton { position: relative; flex: 0 0 auto; min-width: 12rem; height: 56px; margin: 0; padding: 0 3rem !important; background: var(--mod-dorado) !important; color: #21252e !important; border: 0 !important; border-radius: 8px !important; font-family: inherit; font-size: 1rem !important; font-weight: 700; line-height: 1.2; cursor: pointer; transition: background .15s ease; }
.Contenido .cal-b-boton:hover { background: #efb84a !important; }
.cal-b-boton i { position: absolute; right: 1.1rem; top: 50%; transform: translateY(-50%); }
@media only screen and (max-width: 783px) {
	.cal-b { flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: .9rem; padding: 1rem; }
	.cal-b-campo, .cal-b-fechas { flex: none; width: 100%; }
	.cal-b-caja { height: auto; min-height: 54px; flex-wrap: wrap; }
	.Contenido .cal-b-fechas .cal-b-caja input { flex: 1 1 6.5em; } /* con letra grande, las fechas pasan a dos líneas */
	.Contenido .cal-b-caja input, .Contenido .cal-b-caja select { height: auto; padding-top: .4rem; padding-bottom: .4rem; font-size: max(1rem, 16px); }
	.Contenido .cal-b-boton { width: 100%; height: 52px; }
}

/* Nombres de los campos de los formularios: un punto más grandes, en negrita y con el color del texto (antes 12,5 px
   seminegrita en gris). Mismas reglas que las de cada formulario, para todos a la vez. */
.form-grid .campo > span, .ana-filtros .campo > span, .pa-campo > span, .cancel-form .campo > span,
.of-filtros .campo > span, .nif-layout .campo > span, .fr-buscar > span, .login-card label {
	font-size: 0.8438rem;
	font-weight: 700;
	color: var(--mod-texto);
}
.vj-campo > span { font-size: 0.7813rem; font-weight: 700; color: var(--mod-texto); }

/* Teléfonos con la bandera del prefijo (includes/telefonos.php, TelefonoMostrar) */
.tel { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.tel-bandera { width: 18px; height: 13px; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0,0,0,.12); object-fit: cover; flex: none; }
.tel-sin-pais { display: inline-flex; align-items: center; justify-content: center; font-size: 0.625rem; font-weight: 700; color: var(--mod-texto-suave); background: var(--mod-crema); }

/* Gestión › Clientes duplicados */
.cd-grupo { border-top: 1px solid var(--mod-borde); padding: 12px 0 14px; }
.cd-grupo:first-of-type { border-top: 0; }
.cd-tabla td, .cd-tabla th { vertical-align: middle; }
.cd-tabla tr.cd-conservar td { background: var(--mod-acento-suave); }
.cd-tabla input[type=radio], .cd-tabla input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--mod-acento); }
.cd-grupo .btn { margin-top: 8px; }
.cd-previa { border-color: var(--mod-dorado); }
.cd-confirmar { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
