@charset "utf-8";
/* CSS Document - Versión modernizada
   Mantiene las mismas clases para poder sustituir el CSS actual sin cambiar el HTML.
*/

/* =========================
   VARIABLES GENERALES
========================= */
:root {
	--color-primary: #ff6b1a;
	--color-primary-dark: #e85a0c;
	--color-success: #22c55e;
	--color-success-dark: #16a34a;
	--color-danger: #ef4444;
	--color-danger-dark: #dc2626;
	--color-muted: #64748b;
	--color-text: #334155;
	--color-title: #0f172a;
	--color-border: #e2e8f0;
	--color-bg: #f5f7fb;
	--color-card: #ffffff;
	--shadow-soft: 0 12px 35px rgba(15, 23, 42, 0.10);
	--shadow-small: 0 4px 14px rgba(15, 23, 42, 0.08);
	--radius-sm: 10px;
	--radius-md: 16px;
	--radius-lg: 24px;
	--transition: all .2s ease;
}

* {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background:
		radial-gradient(circle at top left, rgba(255, 107, 26, .10), transparent 30%),
		linear-gradient(180deg, #ffffff 0%, var(--color-bg) 100%);
	font-family: "Inter", "Segoe UI", Roboto, Arial, Helvetica, sans-serif;
	color: var(--color-text);
}

/* ELIMINAR FLECHAS EN INPUTS NUMBER */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

input[type="number"] {
	-moz-appearance: textfield;
}

/* EVITAR QUE IOS COJA LOS ESTILOS PROPIOS DE BOTONES */
input[type="date"],
input[type="button"],
input[type="submit"],
button {
	-webkit-appearance: none;
	appearance: none;
}

a {
	text-decoration: none;
	color: inherit;
}

img {
	max-width: 100%;
	height: auto;
}

/* =========================
   ESTRUCTURA
========================= */
.contenedor {
	width: min(100%, 720px);
	margin: 0 auto;
	padding: 18px;
	float: none;
	font-family: "Inter", "Segoe UI", Roboto, Arial, Helvetica, sans-serif;
	color: var(--color-text);
	font-weight: normal;
}

.encabezado {
	width: 100%;
	padding: 18px 12px;
	text-align: center;
}

.logo,
.img_encabezado {
	display: block;
	margin: 0 auto;
	float: none;
}

.img_encabezado {
	width: 150px;
	filter: drop-shadow(0 8px 18px rgba(15, 23, 42, .12));
}

.linea_naranja {
	width: 100%;
	margin: 0 auto 14px auto;
	padding: 12px 16px;
	border-left: 6px solid var(--color-primary);
	border-radius: var(--radius-sm);
	background: rgba(255, 107, 26, .08);
	color: var(--color-title);
	font-weight: 700;
}

.contenido {
	width: 100%;
	overflow: hidden;
	background: rgba(255, 255, 255, .92);
	border: 1px solid rgba(226, 232, 240, .95);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-soft);
	padding: 22px;
	backdrop-filter: blur(8px);
}

.parrafo {
	width: 100%;
	max-width: 580px;
	margin: 22px auto;
	text-align: center;
	line-height: 1.6;
	color: var(--color-muted);
}

/* =========================
   BLOQUES / NAVEGACIÓN
========================= */
.traducirtexto {
	float: left;
	width: 50%;
	overflow: hidden;
	font-size: 20px;
	text-align: center;
	padding: 12px;
	color: var(--color-title);
}

.traducirtexto h2 {
	margin-top: 8px;
	font-size: clamp(22px, 4vw, 30px);
	line-height: 1.2;
}

.traducirtexto img {
	width: 223px;
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-small);
	transition: var(--transition);
}

.traducirtexto img:hover {
	transform: translateY(-3px);
}

.navegacion {
	padding: 18px 0;
	text-align: center;
}

.navegacion img {
	width: 127px;
	margin: 10px 13px;
	border-radius: 18px;
	box-shadow: var(--shadow-small);
	transition: var(--transition);
}

.navegacion img:hover {
	transform: translateY(-3px) scale(1.02);
}

/* =========================
   FORMULARIOS
========================= */
.seleccionar,
input,
textarea,
select {
	font-family: inherit;
}

.seleccionar {
	width: 100%;
	max-width: 580px;
	min-height: 54px;
	background: #ffffff;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	font-size: 20px;
	padding: 12px 16px;
	font-weight: 700;
	margin: 0 auto 12px auto;
	display: block;
	color: var(--color-title);
	box-shadow: 0 2px 8px rgba(15, 23, 42, .04);
	transition: var(--transition);
}

.seleccionar:focus,
.input_numero:focus,
.tabla_presupuesto input:focus,
.tabla_usuario input:focus,
.cuadro_texto:focus,
.cuadro_texto_swal:focus {
	outline: none;
	border-color: var(--color-primary);
	box-shadow: 0 0 0 4px rgba(255, 107, 26, .16);
}

.input_numero {
	border: 1px solid var(--color-border);
	border-radius: 999px;
	width: 120px;
	height: 44px;
	margin: 6px 8px;
	font-size: 22px;
	text-align: center;
	background: #ffffff;
	color: var(--color-title);
}

input[type="date"] {
	height: 44px;
	padding: 0 12px;
}

.label_seleccionar {
	width: 100%;
	max-width: 580px;
	display: block;
	margin: 0 auto 8px auto;
	font-size: 21px;
	line-height: 1.4;
	color: var(--color-title);
	font-weight: 700;
}

/* =========================
   TABLAS
========================= */
.tabla_sin_borde,
.tabla_presupuesto,
.tabla_personal,
.tabla_botones,
.tabla_usuario,
.tabla_swal {
	width: 100%;
	border: none;
	font-size: clamp(18px, 3.6vw, 24px);
	margin-left: auto;
	margin-right: auto;
	border-collapse: separate;
	border-spacing: 0;
}

.tabla_swal {
	max-width: 450px;
	display: table;
	font-weight: 700;
}

.tabla_presupuesto,
.tabla_personal {
	margin-bottom: 22px;
}

.tabla_botones {
	margin-top: 22px;
}

.tabla_sin_borde td {
	padding-bottom: 12px;
	vertical-align: middle;
}

.tabla_sin_borde .columna_1 {
	width: 52%;
	text-align: left;
}

.tabla_sin_borde .columna_2,
.tabla_sin_borde .columna_3 {
	width: 24%;
	text-align: right;
}

.tabla_sin_borde .subopcion {
	padding-left: 30px;
	width: auto;
	text-align: left;
	color: var(--color-muted);
}

.tabla_sin_borde .subopcion_2 {
	padding-left: 60px;
	width: auto;
	text-align: left;
	color: var(--color-muted);
}

/* Tabla presupuesto */
.tabla_presupuesto {
	border-spacing: 10px;
}

.tabla_presupuesto td {
	width: 50%;
	padding: 8px;
	vertical-align: top;
}

.tabla_presupuesto label,
.tabla_presupuesto .etiqueta_derecha,
.tabla_presupuesto .etiqueta_izquierda {
	display: block;
	width: 100%;
	line-height: 1.35;
	font-size: 17px;
	font-weight: 700;
	text-align: center;
	color: var(--color-title);
}

.tabla_presupuesto .etiqueta_derecha {
	float: right;
}

.tabla_presupuesto .etiqueta_izquierda {
	float: left;
}

.tabla_presupuesto .etiqueta_centrado {
	text-align: center;
}

.tabla_presupuesto input,
.tabla_usuario input {
	width: 100%;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	margin: 8px auto;
	display: block;
	font-size: 21px;
	min-height: 46px;
	text-align: center;
	padding: 8px 12px;
	color: var(--color-title);
	background: #ffffff;
	transition: var(--transition);
}

.tabla_presupuesto .campo_linea,
.tabla_usuario .campo_linea {
	width: 100%;
	text-align: left;
	padding: 8px;
	font-size: 22px;
}

/* Tabla personal */
.tabla_personal {
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	margin-top: 12px;
	padding: 8px;
	background: #ffffff;
	box-shadow: var(--shadow-small);
	overflow: hidden;
}

.tabla_personal td {
	padding: 8px;
	text-align: center;
	/* Para mostrar los periodos en el listado de empleados */
	/*border-bottom: 1px solid rgba(226, 232, 240, .7);*/
}

.tabla_personal tr:last-child td {
	border-bottom: none;
}

.tabla_personal td input {
	border: 1px solid transparent;
	border-radius: var(--radius-sm);
	font-size: 22px;
	width: 100%;
	background: #f8fafc;
	color: var(--color-title);
	padding: 7px;
}

.tabla_personal .horas input {
	width: 80px;
	text-align: right;
}

.tabla_personal .numero input,
.tabla_personal .numero {
	text-align: center;
	width: 70px;
}

.tabla_personal .personal,
.tabla_personal .personal input {
	width: 100%;
	font-size: 21px;
	min-height: 34px;
}

.tabla_personal .horas {
	width: 115px;
}

.periodo_empleado_linea {
	/*Para mostrar los periodos en el listado de empleados*/
	font-size: 18px;
	color: #777;
	line-height: 4px;
	margin-top: 0px;
	text-align: center;
}


.tabla_personal td .boton_borrar {
	float: right;
	width: 110px;
}

/* Tabla cálculo */
.tabla_calculo {
	margin: 20px auto;
	display: table;
	width: 100%;
	max-width: 620px;
	border-collapse: collapse;
	background: #ffffff;
	border-radius: var(--radius-md);
	overflow: hidden;
	box-shadow: var(--shadow-small);
}

.tabla_calculo td {
	border-bottom: 1px solid var(--color-border);
	padding: 12px;
}

.tabla_calculo input {
	text-align: right;
	border: none;
	font-size: 16px;
	color: var(--color-text);
	background: transparent;
}

.tabla_calculo .columna_1 {
	width: 75%;
	text-align: left;
}

.tabla_calculo .columna_2 {
	width: 25%;
	text-align: right;
}

/* Ajuste específico para la tabla interior de inversiones */
#tabla_inversiones {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    border: none !important;
}

/* Si algún JavaScript la muestra como block, forzar comportamiento de tabla */
#tabla_inversiones[style*="display:block"],
#tabla_inversiones[style*="display: block"] {
    display: table !important;
}

#tabla_inversiones td {
    padding: 12px !important;
}

#tabla_inversiones .columna_1 {
    width: 75% !important;
    text-align: left !important;
}

#tabla_inversiones .columna_2 {
    width: 25% !important;
    text-align: right !important;
}

#tabla_inversiones dl,
#tabla_inversiones ul {
    margin-bottom: 0 !important;
}

#tabla_inversiones dt {
	font-weight: normal !important;
}

/* Tabla usuario */
.tabla_usuario .etiqueta_izquierda label,
.tabla_usuario .etiqueta_izquierda input,
.tabla_usuario .etiqueta_derecha label,
.tabla_usuario .etiqueta_derecha input {
	width: 48%;
	text-align: left;
	padding: 8px;
	font-size: 21px;
}

.tabla_usuario .etiqueta_izquierda label,
.tabla_usuario .etiqueta_izquierda input {
	float: left;
}

.tabla_usuario .etiqueta_derecha label,
.tabla_usuario .etiqueta_derecha input {
	float: right;
}

/* =========================
   BOTONES
========================= */

/* BOTÓN IMPRIMIR DATOS PANTALLA */

.fila_boton_imprimir_pantalla {
	width: 100% !important;
	display: flex !important;
	justify-content: center !important;
	align-items: center !important;
	padding: 10px 0 6px 0 !important;
	text-align: center !important;
}

input.boton_imprimir_pantalla {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;

	width: auto !important;
	min-width: 190px !important;
	max-width: none !important;
	height: 38px !important;
	min-height: 38px !important;

	padding: 0 20px !important;
	margin: 0 auto !important;

	border: 1px solid #ffbd85 !important;
	border-radius: 999px !important;

	background: #fff1e6 !important;
	color: #8a3d00 !important;

	font-family: "Inter", "Segoe UI", Arial, sans-serif !important;
	font-size: 14px !important;
	font-weight: 800 !important;
	line-height: 38px !important;
	text-align: center !important;

	box-shadow: 0 3px 8px rgba(255, 140, 66, 0.16) !important;

	cursor: pointer !important;

	appearance: none !important;
	-webkit-appearance: none !important;

	transition: all .18s ease !important;
}

input.boton_imprimir_pantalla:hover {
	background: #ffdfc2 !important;
	border-color: #ff9f5a !important;
	color: #7a3d00 !important;
	box-shadow: 0 6px 14px rgba(255, 140, 66, 0.22) !important;
	transform: translateY(-1px) !important;
}

input.boton_imprimir_pantalla:active {
	transform: translateY(0) !important;
}

.boton_guardar,
.boton_borrar,
.boton_pdf,
.swal2-confirm,
.swal2-cancel {
	border: none;
	border-radius: 999px;
	color: #ffffff;
	font-weight: 800;
	font-size: 21px;
	min-height: 44px;
	text-align: center;
	padding: 0 18px;
	line-height: 44px;

	cursor: pointer;
	transition: var(--transition);
	box-shadow: 0 8px 18px rgba(15, 23, 42, .14);
}

.boton_guardar {
	background: linear-gradient(135deg, var(--color-success), var(--color-success-dark));
	width: 140px;
	margin-left: auto;
	margin-right: auto;
	display: block;
}

.boton_borrar {
	background: linear-gradient(135deg, #94a3b8, #64748b);
}

.boton_pdf {
	background: linear-gradient(135deg, var(--color-danger), var(--color-danger-dark));
}

.boton_guardar:hover,
.boton_borrar:hover,
.boton_pdf:hover,
.swal2-confirm:hover,
.swal2-cancel:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 24px rgba(15, 23, 42, .18);
	filter: brightness(1.03);
}

.boton_guardar:active,
.boton_borrar:active,
.boton_pdf:active {
	transform: translateY(0);
}

.tabla_botones td {
	width: 33.33%;
	padding: 6px;
}

.tabla_botones td .boton_guardar,
.tabla_botones td .boton_borrar,
.tabla_botones td .boton_pdf {
	width: 100%;
}

.tabla_sin_borde .boton_guardar {
	width: 130px;
	margin-left: 10px;
	margin-right: 10px;
}

/* =========================
   TEXTOS / TITULARES
========================= */
.titulo_ajustes {
	font-size: clamp(30px, 6vw, 44px);
	color: var(--color-title);
	font-family: "Inter", "Segoe UI", Arial, Helvetica, sans-serif;
	text-align: center;
	margin: 42px 0 24px 0;
	font-weight: 900;
	letter-spacing: -0.03em;
}

.cuadro_texto,
.cuadro_texto_swal {
	width: 100%;
	resize: vertical;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	font-size: 18px;
	padding: 14px;
	color: var(--color-title);
	background: #ffffff;
	line-height: 1.5;
	transition: var(--transition);
}

.cuadro_texto {
	height: 300px;
}

.cuadro_texto_swal {
	height: 250px;
}

.botones_archivo {
	text-align: center;
}

.botones_archivo a {
	width: 120px;
	margin: 12px 30px;
	display: inline-block;
	transition: var(--transition);
}

.botones_archivo a:hover {
	transform: translateY(-3px);
}

.botones_archivo a img {
	width: 120px;
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-small);
}

/* SWEET ALERT */
.swal2-confirm,
.swal2-cancel {
	font-weight: 800 !important;
	font-size: 21px !important;
	border-radius: 999px !important;
	width: 200px !important;
	margin-left: 12px !important;
	margin-right: 12px !important;
}

.tabla_swal input[type="radio"] {
	margin-left: auto;
	margin-right: auto;
	display: block;
	width: 36px;
	height: 36px;
	accent-color: var(--color-primary);
}

.tabla_swal input[type="checkbox"],
.tabla_presupuesto input[type="checkbox"] {
	margin-left: auto;
	margin-right: auto;
	display: block;
	width: 30px;
	height: 30px;
	accent-color: var(--color-primary);
}

/* Enlace mostrar/ocultar tabla */
.href_mostrar_tabla {
	font-family: "Inter", "Segoe UI", Arial, Helvetica, sans-serif;
	text-align: center;
	font-weight: 800;
	width: fit-content;
	margin: 8px auto 0 auto;
	font-size: 13px;
	display: block;
	color: var(--color-primary-dark);
	background: rgba(255, 107, 26, .10);
	padding: 6px 12px;
	border-radius: 999px;
}

/* Ajustes personal */
.label_input {
	text-align: center;
	float: left;
	width: fit-content;
}

/* =========================
   SWITCH IOS
========================= */
input[type="checkbox"].ios-toggle {
	display: none;
}

input[type="checkbox"].ios-toggle + label {
	position: relative;
	display: inline-block;
	width: 65px;
	height: 36px;
	background: #cbd5e1;
	border-radius: 50px;
	cursor: pointer;
	transition: var(--transition);
	box-shadow: inset 0 2px 5px rgba(15, 23, 42, .12);
}

input[type="checkbox"].ios-toggle + label::after {
	content: "";
	position: absolute;
	top: 4px;
	left: 4px;
	width: 28px;
	height: 28px;
	background: #ffffff;
	border-radius: 50%;
	transition: var(--transition);
	box-shadow: 0 3px 8px rgba(15, 23, 42, .24);
}

input[type="checkbox"].ios-toggle:checked + label {
	background: linear-gradient(135deg, var(--color-success), var(--color-success-dark));
}

input[type="checkbox"].ios-toggle:checked + label::after {
	transform: translateX(29px);
}

.checkbox_grande {
	display: block;
	width: 40px;
	height: 40px;
	accent-color: var(--color-primary);
}

/* =========================
   RESPONSIVE
========================= */
@media only screen and (min-width: 1025px) {
	.tabla_presupuesto input[type="date"] {
		height: 46px;
		padding-top: 0;
	}
}

@media only screen and (max-width: 720px) {
	.contenedor {
		padding: 12px;
	}

	.contenido {
		padding: 16px;
		border-radius: 18px;
	}

	.traducirtexto {
		float: none;
		width: 100%;
	}

	.navegacion img {
		width: 100px;
		margin: 8px;
	}

	.tabla_presupuesto,
	.tabla_presupuesto tbody,
	.tabla_presupuesto tr,
	.tabla_presupuesto td,
	.tabla_usuario,
	.tabla_usuario tbody,
	.tabla_usuario tr,
	.tabla_usuario td,
	.tabla_botones,
	.tabla_botones tbody,
	.tabla_botones tr,
	.tabla_botones td {
		display: block;
		width: 100%;
	}

	.tabla_botones td {
		padding: 6px 0;
	}

	.tabla_sin_borde {
		font-size: 18px;
	}

	.tabla_sin_borde .columna_1,
	.tabla_sin_borde .columna_2,
	.tabla_sin_borde .columna_3 {
		width: auto;
	}

	.tabla_sin_borde .subopcion,
	.tabla_sin_borde .subopcion_2 {
		padding-left: 15px;
	}

	.tabla_usuario .etiqueta_izquierda label,
	.tabla_usuario .etiqueta_izquierda input,
	.tabla_usuario .etiqueta_derecha label,
	.tabla_usuario .etiqueta_derecha input {
		float: none;
		width: 100%;
	}

	.swal2-confirm,
	.swal2-cancel {
		width: 100% !important;
		max-width: 230px !important;
		margin: 6px auto !important;
	}
}

@media only screen and (max-width: 520px) {
	.contenedor {
		padding: 8px;
	}

	.encabezado {
		padding: 12px 8px;
	}

	.linea_naranja {
		padding: 10px 12px;
	}

	.seleccionar,
	.label_seleccionar {
		font-size: 18px;
	}

	.tabla_sin_borde,
	.tabla_personal,
	.tabla_calculo {
		font-size: 16px;
	}

	.tabla_personal,
	.tabla_personal tbody,
	.tabla_personal tr,
	.tabla_personal td {
		display: block;
		width: 100%;
	}

	.tabla_personal td {
		text-align: left;
	}

	.tabla_personal .horas,
	.tabla_personal .horas input,
	.tabla_personal .numero,
	.tabla_personal .numero input,
	.tabla_personal .personal,
	.tabla_personal .personal input {
		width: 100%;
	}
	
	.boton_guardar,
	.boton_borrar,
	.boton_pdf {
		width: 100%;
		font-size: 19px;
	}

	.botones_archivo a {
		margin: 10px;
	}
}

/* =========================================================
   AJUSTES FINALES SOLICITADOS - SERERE / PRESUPUESTOS
   Pegar al final o sustituir estilos.css completo por este archivo.
   ========================================================= */

/* ---------------------------------------------------------
   1) COMENSALES DIARIOS Y MENÚS GRATUITOS EN 3 COLUMNAS
   Solo CSS. Corrige los labels flotantes de presupuestos.php.
--------------------------------------------------------- */
.tabla_presupuesto td[colspan="2"] {
	text-align:center !important;
	clear:both !important;
}

.tabla_presupuesto td[colspan="2"] > div[style*="text-align:center"] {
	float:none !important;
	clear:both !important;
	display:block !important;
	width:100% !important;
	margin:18px 0 14px 0 !important;
	font-size:18px !important;
	font-weight:800 !important;
	line-height:1.25 !important;
	color:var(--color-title) !important;
}

.tabla_presupuesto td[colspan="2"] > label.etiqueta_centrado.etiqueta_izquierda {
	float:none !important;
	display:inline-block !important;
	vertical-align:top !important;
	width:30% !important;
	max-width:180px !important;
	min-width:115px !important;
	margin:0 1.25% 18px 1.25% !important;
	padding:0 !important;
	text-align:center !important;
	box-sizing:border-box !important;
	font-size:17px !important;
	font-weight:800 !important;
	line-height:1.2 !important;
	color:var(--color-title) !important;
}

.tabla_presupuesto td[colspan="2"] > label.etiqueta_centrado.etiqueta_izquierda input[type="number"],
.tabla_presupuesto td[colspan="2"] > label.etiqueta_centrado.etiqueta_izquierda input[type="text"] {
	float:none !important;
	display:block !important;
	width:100% !important;
	max-width:180px !important;
	height:46px !important;
	margin:10px auto 0 auto !important;
	padding:8px 10px !important;
	text-align:center !important;
	box-sizing:border-box !important;
	font-size:16px !important;
	font-weight:800 !important;
	border-radius:12px !important;
	border:1px solid #dbe3ef !important;
	background:#f8fafc !important;
	color:#0f172a !important;
	box-shadow:none !important;
}

/* En móvil, si no caben, bajan ordenados sin romper el formulario */
@media only screen and (max-width:560px) {
	.tabla_presupuesto td[colspan="2"] > label.etiqueta_centrado.etiqueta_izquierda {
		display:block !important;
		width:100% !important;
		max-width:280px !important;
		margin:0 auto 16px auto !important;
	}
}

/* ---------------------------------------------------------
   2) CHECK PRESUPUESTO SOSTERRA TIPO iOS, ALINEADO Y SIN DEFORMAR
--------------------------------------------------------- */
.tabla_presupuesto input[type="checkbox"][name="importe_sosterra"] {
	-webkit-appearance:none !important;
	appearance:none !important;
	display:inline-block !important;
	position:relative !important;
	width:52px !important;
	min-width:52px !important;
	max-width:52px !important;
	height:30px !important;
	min-height:30px !important;
	max-height:30px !important;
	padding:0 !important;
	margin:0 12px 0 0 !important;
	vertical-align:middle !important;
	border:0 !important;
	border-radius:999px !important;
	background:#d1d5db !important;
	box-shadow:inset 0 2px 5px rgba(15,23,42,.14) !important;
	cursor:pointer !important;
	transition:background .22s ease, box-shadow .22s ease !important;
}

.tabla_presupuesto input[type="checkbox"][name="importe_sosterra"]::before {
	content:"" !important;
	position:absolute !important;
	top:3px !important;
	left:3px !important;
	width:24px !important;
	height:24px !important;
	border-radius:50% !important;
	background:#fff !important;
	box-shadow:0 2px 7px rgba(15,23,42,.22) !important;
	transition:transform .22s ease !important;
}

.tabla_presupuesto input[type="checkbox"][name="importe_sosterra"]:checked {
	background:#22c55e !important;
}

.tabla_presupuesto input[type="checkbox"][name="importe_sosterra"]:checked::before {
	transform:translateX(22px) !important;
}

.tabla_presupuesto input[type="checkbox"][name="importe_sosterra"]:focus {
	outline:none !important;
	box-shadow:0 0 0 4px rgba(34,197,94,.18), inset 0 2px 5px rgba(15,23,42,.14) !important;
}

/* Alinea el label si el navegador soporta :has() */
.tabla_presupuesto label:has(> input[type="checkbox"][name="importe_sosterra"]),
.tabla_presupuesto td:has(> input[type="checkbox"][name="importe_sosterra"]) {
	display:flex !important;
	align-items:center !important;
	justify-content:center !important;
	gap:10px !important;
	text-align:center !important;
	font-weight:800 !important;
	color:#0f172a !important;
}

/* ---------------------------------------------------------
   3) ICONOS / BOTONES DUPLICAR Y ELIMINAR MÁS SUTILES
--------------------------------------------------------- */
.botones_accion {
	display:flex !important;
	flex-direction:column !important;
	gap:8px !important;
	align-items:center !important;
	justify-content:center !important;
}

.boton_accion,
.boton_duplicar,
.boton_eliminar,
input[type="button"][value="X"],
button[onclick*="eliminar"],
input[onclick*="eliminar"],
button[onclick*="duplic"],
input[onclick*="duplic"] {
	width:42px !important;
	height:42px !important;
	min-width:42px !important;
	min-height:42px !important;
	padding:0 !important;
	border-radius:14px !important;
	border:1px solid #e5e7eb !important;
	background:#ffffff !important;
	box-shadow:0 4px 12px rgba(15,23,42,.07) !important;
	display:inline-flex !important;
	align-items:center !important;
	justify-content:center !important;
	font-size:18px !important;
	font-weight:800 !important;
	line-height:1 !important;
	cursor:pointer !important;
	transition:all .18s ease !important;
}

.boton_duplicar,
button[onclick*="duplic"],
input[onclick*="duplic"] {
	background:#f0fdf4 !important;
	color:#16a34a !important;
	border-color:#bbf7d0 !important;
}

.boton_eliminar,
input[type="button"][value="X"],
button[onclick*="eliminar"],
input[onclick*="eliminar"] {
	background:#fef2f2 !important;
	color:#dc2626 !important;
	border-color:#fecaca !important;
}

.boton_accion:hover,
.boton_duplicar:hover,
.boton_eliminar:hover,
input[type="button"][value="X"]:hover,
button[onclick*="eliminar"]:hover,
input[onclick*="eliminar"]:hover,
button[onclick*="duplic"]:hover,
input[onclick*="duplic"]:hover {
	transform:translateY(-1px) !important;
	box-shadow:0 8px 18px rgba(15,23,42,.11) !important;
}

/* ---------------------------------------------------------
   4) PRESUPUESTO_DETALLE.PHP - COLORES SUAVES Y MODERNOS
   Sobrescribe estilos inline antiguos #00C, #666, silver, Trebuchet.
--------------------------------------------------------- */
h2[style*="background-color:#00C"],
h2[style*="background-color: #00C"] {
	background:linear-gradient(135deg,#dbeafe,#bfdbfe) !important;
	color:#1e3a8a !important;
	border:1px solid #bfdbfe !important;
	border-bottom:none !important;
	border-radius:16px 16px 0 0 !important;
	font-family:"Inter","Segoe UI",Roboto,Arial,sans-serif !important;
	font-size:19px !important;
	font-weight:850 !important;
	letter-spacing:-.25px !important;
	padding:11px 12px !important;
	line-height:1.25 !important;
	box-shadow:none !important;
}

/* Tablas generadas en presupuesto_detalle.php */
h2[style*="background-color:#00C"] + table,
h2[style*="background-color: #00C"] + table,
div[id^="tabla_"] > table[style*="Trebuchet MS"] {
	font-family:"Inter","Segoe UI",Roboto,Arial,sans-serif !important;
	background:#ffffff !important;
	border:1px solid #e5e7eb !important;
	border-radius:0 0 16px 16px !important;
	border-collapse:separate !important;
	border-spacing:0 !important;
	overflow:hidden !important;
	box-shadow:0 8px 22px rgba(15,23,42,.055) !important;
}

tr[style*="background-color:#666"],
tr[style*="background-color: #666"] {
	background:#f1f5f9 !important;
	color:#334155 !important;
}

tr[style*="background-color:#666"] td,
tr[style*="background-color: #666"] td {
	background:#f1f5f9 !important;
	color:#334155 !important;
	font-family:"Inter","Segoe UI",Roboto,Arial,sans-serif !important;
	font-size:15px !important;
	font-weight:800 !important;
	padding:8px 7px !important;
	border-bottom:1px solid #e2e8f0 !important;
}

/* Celdas solo dentro de los bloques de detalle */
div[id^="tabla_"] > table td {
	font-family:"Inter","Segoe UI",Roboto,Arial,sans-serif !important;
	font-size:13px !important;
	color:#111827 !important;
	padding:7px 8px !important;
	border-color:#e5e7eb !important;
}

div[id^="tabla_"] > table tr:hover td {
	background:#f8fafc !important;
}

div[id^="tabla_"] > table input[type="text"],
div[id^="tabla_"] > table input[type="number"] {
	font-family:"Inter","Segoe UI",Roboto,Arial,sans-serif !important;
	background:#f8fafc !important;
	border:1px solid #dbe3ef !important;
	border-radius:10px !important;
	height:28px !important;
	padding:3px 8px !important;
	font-size:13px !important;
	font-weight:700 !important;
	color:#111827 !important;
	box-shadow:none !important;
}

div[id^="tabla_"] > table input[readonly] {
	background:#f8fafc !important;
}

/* Rojos y verdes más suaves en tablas de detalle */
div[id^="tabla_"] td[style*="color:red"],
div[id^="tabla_"] input[style*="color:red"] {
	color:#dc2626 !important;
	font-weight:800 !important;
}

div[id^="tabla_"] td[style*="color:#4ab647"],
div[id^="tabla_"] input[style*="color:#4ab647"] {
	color:#16a34a !important;
	font-weight:800 !important;
}

/* Botón Ocultar tabla */
.href_mostrar_tabla {
	font-family:"Inter","Segoe UI",Roboto,Arial,sans-serif !important;
	background:#f8fafc !important;
	color:#334155 !important;
	border:1px solid #e2e8f0 !important;
	border-radius:999px !important;
	padding:8px 16px !important;
	font-size:13px !important;
	font-weight:800 !important;
	line-height:1.2 !important;
	text-decoration:none !important;
	box-shadow:0 4px 12px rgba(15,23,42,.055) !important;
	transition:all .18s ease !important;
}

.href_mostrar_tabla:hover {
	background:#eff6ff !important;
	color:#1d4ed8 !important;
	border-color:#bfdbfe !important;
	transform:translateY(-1px) !important;
}

/* Scroll horizontal controlado para tablas grandes del detalle */
@media only screen and (max-width:1024px) {
	div[id^="tabla_"] {
		overflow-x:auto !important;
		-webkit-overflow-scrolling:touch !important;
	}

	div[id^="tabla_"] > table {
		min-width:980px !important;
	}
}


/* =========================================================
   RESPONSIVE REAL PARA PRESUPUESTOS
   ========================================================= */

* {
	box-sizing: border-box;
}

body {
	margin: 0;
	overflow-x: hidden;
}

/* Contenedor principal adaptable */
.contenedor {
	width: 100% !important;
	max-width: 720px !important;
	margin: 0 auto !important;
	padding: 0 12px !important;
	float: none !important;
	overflow: visible !important;
}

.encabezado,
.linea_naranja,
.contenido {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
}

.contenido {
	padding: 22px !important;
	overflow: visible !important;
}

/* Tablas adaptadas */
.tabla_presupuesto,
.tabla_sin_borde,
.tabla_personal,
.tabla_botones,
.tabla_usuario {
	width: 100% !important;
	max-width: 100% !important;
}

/* Inputs y selects */
input,
select,
textarea,
.seleccionar,
.label_seleccionar {
	max-width: 100% !important;
	box-sizing: border-box !important;
}

/* Número y fecha */
.tabla_presupuesto td {
	max-width: 100% !important;
}

/* Comensales y gratuitos en 3 columnas */
.tabla_presupuesto td[colspan="2"] {
	text-align: center !important;
	overflow: visible !important;
	white-space: normal !important;
}

.tabla_presupuesto td[colspan="2"] > label.etiqueta_centrado.etiqueta_izquierda {
	float: none !important;
	display: inline-block !important;
	width: 31% !important;
	max-width: 180px !important;
	min-width: 120px !important;
	margin: 0 0.8% 22px 0.8% !important;
	text-align: center !important;
	vertical-align: top !important;
}

.tabla_presupuesto td[colspan="2"] > label.etiqueta_centrado.etiqueta_izquierda input {
	float: none !important;
	display: block !important;
	width: 100% !important;
	margin: 10px auto 0 auto !important;
	text-align: center !important;
}

/* Títulos de esas secciones */
.tabla_presupuesto td[colspan="2"] > div[style*="text-align:center"] {
	float: none !important;
	clear: both !important;
	display: block !important;
	width: 100% !important;
	margin-bottom: 14px !important;
	font-weight: 800 !important;
}

/* Sosterra alineado */
.tabla_presupuesto input[type="checkbox"][name="importe_sosterra"] {
	display: inline-block !important;
	vertical-align: middle !important;
	margin: 0 12px 0 0 !important;
}

/* Responsive móvil */
@media only screen and (max-width: 620px) {

	.contenedor {
		padding: 0 8px !important;
	}

	.contenido {
		padding: 16px !important;
	}

	.tabla_presupuesto td[colspan="2"] > label.etiqueta_centrado.etiqueta_izquierda {
		width: 31% !important;
		min-width: 0 !important;
		max-width: none !important;
		font-size: 13px !important;
		margin: 0 0.5% 18px 0.5% !important;
	}

	.tabla_presupuesto td[colspan="2"] > label.etiqueta_centrado.etiqueta_izquierda input {
		height: 42px !important;
		font-size: 16px !important;
		padding: 6px !important;
	}
}

/* Móvil muy estrecho */
@media only screen and (max-width: 420px) {

	.tabla_presupuesto td[colspan="2"] > label.etiqueta_centrado.etiqueta_izquierda {
		width: 100% !important;
		max-width: 260px !important;
		display: block !important;
		margin: 0 auto 16px auto !important;
	}
}

/* Corregir switch Sosterra sin desplazar el formulario */
.tabla_presupuesto input[type="checkbox"][name="importe_sosterra"] {
	width:50px !important;
	height:28px !important;
	min-width:50px !important;
	max-width:50px !important;
	margin:0 12px 0 0 !important;
	padding:0 !important;
	float:none !important;
	display:inline-block !important;
	position:relative !important;
	top:0 !important;
	left:0 !important;
	transform:none !important;
	vertical-align:middle !important;
	box-sizing:border-box !important;
}

.tabla_presupuesto input[type="checkbox"][name="importe_sosterra"]::before {
	width:22px !important;
	height:22px !important;
	top:3px !important;
	left:3px !important;
}

.tabla_presupuesto input[type="checkbox"][name="importe_sosterra"]:checked::before {
	transform:translateX(22px) !important;
}

/* Alinear la fila de Presupuesto sosterra */
.tabla_presupuesto td:has(input[name="importe_sosterra"]) {
	text-align:center !important;
	white-space:nowrap !important;
}


/* =========================================================
   ARREGLO FINAL PRESUPUESTOS - CENTRADO Y RESPONSIVE
   ========================================================= */

* {
	box-sizing:border-box;
}

body {
	margin:0;
	overflow-x:hidden;
	background:#f8fafc;
}

/* Contenedor general centrado */
.contenedor {
	width:100% !important;
	max-width:680px !important;
	margin:0 auto !important;
	padding:0 14px !important;
	float:none !important;
	overflow:visible !important;
}

/* Bloques principales */
.encabezado,
.linea_naranja,
.contenido {
	width:100% !important;
	max-width:100% !important;
	margin-left:auto !important;
	margin-right:auto !important;
	box-sizing:border-box !important;
}

.contenido {
	padding:22px !important;
	overflow:visible !important;
}

/* Tablas internas */
.tabla_presupuesto,
.tabla_sin_borde,
.tabla_personal,
.tabla_botones,
.tabla_usuario {
	width:100% !important;
	max-width:100% !important;
	margin-left:auto !important;
	margin-right:auto !important;
	table-layout:fixed !important;
}

/* Evitar que inputs/selects se salgan */
input,
select,
textarea,
.seleccionar,
.label_seleccionar {
	max-width:100% !important;
	box-sizing:border-box !important;
}

/* Botones/selects grandes */
.seleccionar {
	width:100% !important;
	display:block !important;
}

/* Centro asociado */
#mostrar_bloque_centro_asociado {
	width:100% !important;
	max-width:100% !important;
	margin-left:auto !important;
	margin-right:auto !important;
	box-sizing:border-box !important;
}

/* Comensales y gratuitos */
.tabla_presupuesto td[colspan="2"] {
	text-align:center !important;
	overflow:visible !important;
	white-space:normal !important;
}

.tabla_presupuesto td[colspan="2"] > label.etiqueta_centrado.etiqueta_izquierda {
	float:none !important;
	display:inline-block !important;
	width:31% !important;
	max-width:160px !important;
	min-width:0 !important;
	margin:0 0.6% 22px 0.6% !important;
	text-align:center !important;
	vertical-align:top !important;
}

.tabla_presupuesto td[colspan="2"] > label.etiqueta_centrado.etiqueta_izquierda input {
	float:none !important;
	display:block !important;
	width:100% !important;
	height:42px !important;
	margin:10px auto 0 auto !important;
	text-align:center !important;
}

/* Títulos de secciones */
.tabla_presupuesto td[colspan="2"] > div[style*="text-align:center"] {
	float:none !important;
	clear:both !important;
	display:block !important;
	width:100% !important;
	text-align:center !important;
	margin-bottom:14px !important;
	font-weight:800 !important;
}

/* Sosterra alineado */
.tabla_presupuesto input[type="checkbox"][name="importe_sosterra"] {
	appearance:none !important;
	-webkit-appearance:none !important;
	width:46px !important;
	height:26px !important;
	min-width:46px !important;
	max-width:46px !important;
	margin:0 14px 0 0 !important;
	padding:0 !important;
	float:none !important;
	display:inline-block !important;
	position:relative !important;
	vertical-align:middle !important;
	border-radius:999px !important;
	background:#cbd5e1 !important;
	border:none !important;
}

.tabla_presupuesto input[type="checkbox"][name="importe_sosterra"]::before {
	content:"";
	position:absolute;
	width:20px !important;
	height:20px !important;
	top:3px !important;
	left:3px !important;
	border-radius:50%;
	background:#fff;
	box-shadow:0 2px 5px rgba(0,0,0,.18);
	transition:.2s;
}

.tabla_presupuesto input[type="checkbox"][name="importe_sosterra"]:checked {
	background:#22c55e !important;
}

.tabla_presupuesto input[type="checkbox"][name="importe_sosterra"]:checked::before {
	transform:translateX(20px) !important;
}

/* Personal */
.tabla_personal {
	width:100% !important;
	max-width:100% !important;
}

.tabla_personal td {
	box-sizing:border-box !important;
}

.tabla_personal input {
	max-width:100% !important;
}

/* Móvil */
@media only screen and (max-width:560px) {

	.contenedor {
		padding:0 8px !important;
	}

	.contenido {
		padding:16px !important;
	}

	.tabla_presupuesto td[colspan="2"] > label.etiqueta_centrado.etiqueta_izquierda {
		width:31% !important;
		font-size:12px !important;
		margin:0 0.3% 18px 0.3% !important;
	}

	.tabla_presupuesto td[colspan="2"] > label.etiqueta_centrado.etiqueta_izquierda input {
		height:38px !important;
		font-size:14px !important;
		padding:4px !important;
	}
}


/* =========================================================
   SOSTERRA COMO BLOQUE INDEPENDIENTE
   ========================================================= */

/* Contenedor donde está el checkbox */
.tabla_presupuesto td:has(input[name="importe_sosterra"]){

	display:flex !important;
	align-items:center !important;
	justify-content:flex-start !important;
	gap:16px !important;

	width:100% !important;
	padding:20px 10px !important;

	float:none !important;
	clear:both !important;

	overflow:visible !important;
	white-space:normal !important;
}

/* Texto */
.tabla_presupuesto td:has(input[name="importe_sosterra"]) label,
.tabla_presupuesto td:has(input[name="importe_sosterra"]) span{

	font-size:18px !important;
	font-weight:700 !important;
	color:#0f172a !important;

	float:none !important;
	margin:0 !important;
	padding:0 !important;
}

/* SWITCH IOS */
.tabla_presupuesto input[type="checkbox"][name="importe_sosterra"]{

	appearance:none !important;
	-webkit-appearance:none !important;

	position:relative !important;

	width:52px !important;
	height:30px !important;

	min-width:52px !important;
	max-width:52px !important;

	border-radius:999px !important;
	background:#cbd5e1 !important;

	border:none !important;
	outline:none !important;

	cursor:pointer !important;

	margin:0 !important;
	padding:0 !important;

	float:none !important;
	display:inline-block !important;

	transition:.25s;
}

/* Bola */
.tabla_presupuesto input[type="checkbox"][name="importe_sosterra"]::before{

	content:"";

	position:absolute;

	width:22px !important;
	height:22px !important;

	left:4px;
	top:4px;

	border-radius:50%;

	background:#fff;

	box-shadow:0 2px 6px rgba(0,0,0,.18);

	transition:.25s;
}

/* Activo */
.tabla_presupuesto input[type="checkbox"][name="importe_sosterra"]:checked{
	background:#22c55e !important;
}

.tabla_presupuesto input[type="checkbox"][name="importe_sosterra"]:checked::before{
	transform:translateX(22px);
}


/* FIX BOTÓN BORRAR PERSONAL */

.tabla_personal,
.tabla_personal tr,
.tabla_personal td{
	overflow:visible !important;
}

/* fila empleado */
.tabla_personal tr{
	display:flex !important;
	align-items:center !important;
	gap:10px;
	width:100% !important;
}

/* columnas */
.tabla_personal td{
	flex:none !important;
}

/* nombre */
.tabla_personal td:nth-child(2){
	flex:1 !important;
	min-width:0;
}

/* botón borrar */
.tabla_personal .boton_borrar,
.tabla_personal input[value="Borrar"],
.tabla_personal button{
	display:inline-flex !important;
	align-items:center;
	justify-content:center;

	min-width:84px !important;
	height:42px !important;

	padding:0 16px !important;

	border-radius:12px !important;

	background:#f8fafc !important;
	color:#0f172a !important;

	border:1px solid #dbe3ef !important;

	font-size:15px !important;
	font-weight:700 !important;

	white-space:nowrap !important;

	position:relative !important;
	z-index:10 !important;
}


/* PANTALLA PRINCIPAL */
.contenido {
	height:auto !important;
	min-height:0 !important;
	overflow:visible !important;
	padding-bottom:35px !important;
}

.traducirtexto {
	float:none !important;
	display:inline-block !important;
	vertical-align:top !important;
	width:46% !important;
	margin:18px 1.5% !important;
	box-sizing:border-box !important;
	text-align:center !important;
	overflow:visible !important;
}

.traducirtexto img {
	width:190px !important;
	max-width:100% !important;
	height:auto !important;
	display:block !important;
	margin:0 auto !important;
}

.traducirtexto h2 {
	margin:10px 0 0 0 !important;
	font-size:28px !important;
	line-height:1.1 !important;
}

@media only screen and (max-width:520px) {
	.traducirtexto {
		width:47% !important;
		margin:14px 1% !important;
	}

	.traducirtexto img {
		width:150px !important;
	}

	.traducirtexto h2 {
		font-size:22px !important;
	}
}


/* =========================================================
   USUARIOS - LISTADO MODERNO
   ========================================================= */

/* tabla usuarios */
table[border="5"]{
	width:100% !important;

	border-collapse:separate !important;
	border-spacing:0 14px !important;

	border:none !important;
	background:transparent !important;

	font-family:"Inter","Segoe UI",sans-serif !important;
}

/* cabecera */
table[border="5"] th{

	background:#eef2ff !important;
	color:#1e293b !important;

	padding:16px 14px !important;

	font-size:16px !important;
	font-weight:800 !important;

	border:none !important;

	text-align:left !important;
}

/* esquinas */
table[border="5"] th:first-child{
	border-radius:18px 0 0 18px;
}

table[border="5"] th:last-child{
	border-radius:0 18px 18px 0;
}

/* filas */
table[border="5"] tr{

	background:#ffffff !important;

	box-shadow:0 6px 18px rgba(15,23,42,.06);

	border-radius:18px !important;

	transition:.2s;
}

/* hover */
table[border="5"] tr:hover{
	transform:translateY(-2px);
	box-shadow:0 10px 24px rgba(15,23,42,.10);
}

/* celdas */
table[border="5"] td{

	padding:18px 14px !important;

	border:none !important;

	font-size:15px !important;
	font-weight:600 !important;

	color:#0f172a !important;

	background:#fff !important;
}

/* esquinas filas */
table[border="5"] td:first-child{
	border-radius:18px 0 0 18px;
}

table[border="5"] td:last-child{
	border-radius:0 18px 18px 0;
}

/* email */
table[border="5"] td:nth-child(2){
	color:#475569 !important;
	font-weight:500 !important;
}

/* contraseña */
table[border="5"] td:nth-child(3){
	font-family:monospace;
	letter-spacing:1px;
	color:#16a34a !important;
	font-weight:700 !important;
}

/* móvil */
@media only screen and (max-width:680px){

	table[border="5"]{
		display:block;
		overflow-x:auto;
		white-space:nowrap;
	}

	table[border="5"] th,
	table[border="5"] td{
		font-size:14px !important;
		padding:14px 12px !important;
	}
}


/* =========================================================
   SWEET ALERT - PRESUPUESTOS MODERNO
   ========================================================= */

.swal2-popup {
	border-radius:24px !important;
	padding:28px !important;
	font-family:"Inter","Segoe UI",Arial,sans-serif !important;
	box-shadow:0 20px 50px rgba(15,23,42,.18) !important;
}

.swal2-html-container {
	margin:0 !important;
	color:#0f172a !important;
	font-size:18px !important;
	font-weight:700 !important;
}

.swal2-html-container input,
.swal2-html-container select {
	width:100% !important;
	max-width:450px !important;
	height:52px !important;
	border:1px solid #dbe3ef !important;
	border-radius:16px !important;
	background:#f8fafc !important;
	color:#0f172a !important;
	font-size:20px !important;
	font-weight:700 !important;
	text-align:center !important;
	box-shadow:0 4px 12px rgba(15,23,42,.05) !important;
}

.swal2-html-container select {
	text-align:left !important;
	padding:0 18px !important;
}

.swal2-html-container input:focus,
.swal2-html-container select:focus {
	outline:none !important;
	border-color:#93c5fd !important;
	box-shadow:0 0 0 4px rgba(147,197,253,.25) !important;
}

.tabla_swal {
	width:100% !important;
	max-width:480px !important;
	margin:0 auto !important;
	font-family:"Inter","Segoe UI",Arial,sans-serif !important;
	color:#0f172a !important;
}

.tabla_swal td {
	padding:8px !important;
	text-align:center !important;
	font-size:18px !important;
	font-weight:800 !important;
}

.tabla_swal input[type="radio"] {
	appearance:none !important;
	-webkit-appearance:none !important;
	width:34px !important;
	height:34px !important;
	border-radius:50% !important;
	border:4px solid #fb923c !important;
	background:#fff !important;
	box-shadow:0 3px 8px rgba(15,23,42,.12) !important;
	cursor:pointer !important;
}

.tabla_swal input[type="radio"]:checked {
	background:#fb923c !important;
	box-shadow:inset 0 0 0 7px #fff, 0 3px 8px rgba(15,23,42,.12) !important;
}

.swal2-confirm,
.swal2-cancel {
	height:54px !important;
	border-radius:18px !important;
	font-size:20px !important;
	font-weight:800 !important;
	box-shadow:0 8px 18px rgba(15,23,42,.12) !important;
}

.swal2-confirm {
	background:#2563eb !important;
}

.swal2-cancel {
	background:#e5e7eb !important;
	color:#334155 !important;
}


/* SWEET ALERT - inputs sin pisarse */
.swal2-popup input[type="text"],
.swal2-popup input[type="number"] {
	height:44px !important;
	border-radius:14px !important;
	border:1px solid #dbe3ef !important;
	background:#f8fafc !important;
	font-size:20px !important;
	font-weight:700 !important;
	color:#0f172a !important;
	text-align:center !important;
	padding:0 8px !important;
	box-sizing:border-box !important;
	box-shadow:0 4px 10px rgba(15,23,42,.05) !important;
}

/* Cantidad */
.swal2-popup input[id*="cantidad"],
.swal2-popup input[name*="cantidad"] {
	width:85px !important;
	min-width:85px !important;
	max-width:85px !important;
}

/* Jornada laboral */
.swal2-popup input[id*="jornada"],
.swal2-popup input[name*="jornada"],
.swal2-popup input[id*="horas"],
.swal2-popup input[name*="horas"] {
	width:115px !important;
	min-width:115px !important;
	max-width:115px !important;
}

/* Tablas dentro del SweetAlert */
.swal2-popup table {
	width:100% !important;
	table-layout:fixed !important;
}

.swal2-popup td {
	padding:8px 6px !important;
	vertical-align:middle !important;
	font-size:16px !important;
}

/* Campos de datos salario */
.swal2-popup .tabla_swal input {
	font-size:20px !important;
	height:44px !important;
	max-width:120px !important;
}


/* =========================================================
   LISTADO PRESUPUESTOS - DUPLICAR + BORRAR ALINEADOS
   Última mejora integrada.
   HTML real:
   <td style="width:90px;text-align:right; white-space:nowrap;">
      <img src="/imagenes/botones/duplicar.png" ... onclick="duplicar_presupuesto(...)" />
      <input type="button" class="boton_borrar" value="X" ... />
   </td>
   ========================================================= */

/* Celda exacta de acciones del listado */
td[style*="white-space:nowrap"]:has(> img[src*="duplicar.png"]) {
	display:flex !important;
	flex-direction:row !important;
	align-items:center !important;
	justify-content:flex-end !important;
	gap:10px !important;

	width:110px !important;
	min-width:110px !important;
	max-width:110px !important;

	padding:0 12px 0 0 !important;
	margin:0 !important;

	box-sizing:border-box !important;
	white-space:nowrap !important;

	position:static !important;
	overflow:visible !important;
}

/* Reset completo de pseudo-elementos anteriores que podían crear botones fantasma */
td[style*="white-space:nowrap"]:has(> img[src*="duplicar.png"])::before,
td[style*="white-space:nowrap"]:has(> img[src*="duplicar.png"])::after,
td:has(img[src*="duplicar.png"])::before,
td:has(img[src*="duplicar.png"])::after,
div:has(img[src*="duplicar.png"])::before,
div:has(img[src*="duplicar.png"])::after {
	content:none !important;
	display:none !important;
}

/* Botón duplicar: conserva el onclick original de la imagen */
td[style*="white-space:nowrap"] > img[src*="duplicar.png"] {
	width:42px !important;
	height:42px !important;
	min-width:42px !important;
	max-width:42px !important;
	min-height:42px !important;
	max-height:42px !important;

	padding:8px !important;
	margin:0 !important;

	display:block !important;
	float:none !important;
	position:static !important;

	opacity:1 !important;
	visibility:visible !important;

	border-radius:14px !important;
	background:#ecfdf3 !important;
	border:1px solid #bbf7d0 !important;

	box-shadow:0 4px 12px rgba(15,23,42,.06) !important;

	object-fit:contain !important;
	cursor:pointer !important;

	vertical-align:middle !important;
	box-sizing:border-box !important;

	transition:all .18s ease !important;
}

/* Botón eliminar: mismo tamaño y alineación */
td[style*="white-space:nowrap"] > input.boton_borrar[value="X"] {
	width:42px !important;
	height:42px !important;
	min-width:42px !important;
	max-width:42px !important;
	min-height:42px !important;
	max-height:42px !important;

	padding:0 !important;
	margin:0 !important;

	display:flex !important;
	align-items:center !important;
	justify-content:center !important;

	float:none !important;
	position:static !important;

	border-radius:14px !important;

	background:#fef2f2 !important;
	border:1px solid #fecaca !important;

	color:#dc2626 !important;

	font-size:20px !important;
	font-weight:800 !important;
	line-height:1 !important;

	box-shadow:0 4px 12px rgba(15,23,42,.06) !important;

	cursor:pointer !important;
	box-sizing:border-box !important;

	outline:none !important;
	transition:all .18s ease !important;
}

/* Hover coherente */
td[style*="white-space:nowrap"] > img[src*="duplicar.png"]:hover {
	background:#dcfce7 !important;
	border-color:#86efac !important;
	transform:translateY(-1px) !important;
	box-shadow:0 8px 18px rgba(15,23,42,.10) !important;
}

td[style*="white-space:nowrap"] > input.boton_borrar[value="X"]:hover {
	background:#fee2e2 !important;
	border-color:#fca5a5 !important;
	transform:translateY(-1px) !important;
	box-shadow:0 8px 18px rgba(15,23,42,.10) !important;
}

/* Evitar borde azul de foco tras pulsar */
td[style*="white-space:nowrap"] > input.boton_borrar[value="X"]:focus,
td[style*="white-space:nowrap"] > img[src*="duplicar.png"]:focus {
	outline:none !important;
}





@media screen and (min-width: 1200px) {

    body{
        overflow-x:hidden;
    }

    .dashboard-presupuesto{
        display:grid;
        grid-template-columns:32% 34% 32%;
        gap:24px;
        align-items:start;
        width:95%;
        max-width:1600px;
        margin:auto;
    }

    .dashboard-columna{
        display:flex;
        flex-direction:column;
        gap:22px;
    }

    .dashboard-card{
        background:#fff;
        border-radius:22px;
        padding:20px;
        box-shadow:
            0 4px 12px rgba(0,0,0,.05),
            0 1px 3px rgba(0,0,0,.04);
        border:1px solid #edf1f7;
    }

    .dashboard-card input,
    .dashboard-card select{
        width:100%;
        border-radius:16px;
        border:1px solid #dfe5ee;
        background:#f8fafc;
        padding:12px 16px;
        font-size:18px;
        font-weight:600;
        color:#1e293b;
    }

    .dashboard-card h2,
    .dashboard-card h3,
    .dashboard-card h4{
        font-size:30px;
        font-weight:800;
        color:#1f2937;
        margin-bottom:18px;
    }

    .resumen_totales{
        background:white;
        border-radius:24px;
        overflow:hidden;
        box-shadow:
            0 4px 16px rgba(0,0,0,.05);
    }

    .resumen_totales table{
        width:100%;
        border-collapse:collapse;
    }

    .resumen_totales td{
        padding:14px 18px;
        border-bottom:1px solid #edf2f7;
        font-size:17px;
    }

    #map,
    .mapa_leaflet{
        width:100%;
        height:420px;
        border-radius:24px;
        overflow:hidden;
        box-shadow:
            0 4px 18px rgba(0,0,0,.08);
    }

    .dashboard-botones{
        display:grid;
        grid-template-columns:repeat(3,1fr);
        gap:14px;
    }

    .dashboard-botones button,
    .dashboard-botones input[type=button],
    .dashboard-botones a{
        border:0;
        border-radius:18px;
        padding:16px;
        font-size:18px;
        font-weight:700;
        color:white;
        cursor:pointer;
        transition:.2s;
        text-align:center;
    }

    .dashboard-botones button:hover{
        transform:translateY(-2px);
    }

    .empleado-card{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:14px;
        background:#fff;
        border-radius:22px;
        padding:14px 18px;
        box-shadow:
            0 3px 12px rgba(0,0,0,.05);
    }

    .btn-detalle{
        width:100%;
        border-radius:999px;
        background:linear-gradient(135deg,#22c55e,#16a34a);
        color:white;
        border:0;
        padding:18px;
        font-size:20px;
        font-weight:800;
    }
}



/* =========================
   SOSTERRA JUNTO AL CENTRO
========================= */

.bloque-centro {
    position: relative;
    padding-bottom: 90px;
}

.bloque-sosterra {
    position: absolute;
    bottom: 10px;
    right: 20px;

    display: flex;
    align-items: center;
    gap: 14px;

    background: #f8fafc;
    border-radius: 18px;
    padding: 10px 16px;

    box-shadow:
        0 4px 14px rgba(0,0,0,0.08),
        inset 0 1px 0 rgba(255,255,255,0.7);
}

.bloque-sosterra label {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    color: #172033;
}

/* =========================
   CHECK IOS
========================= */

.bloque-sosterra input[type="checkbox"]{
    appearance:none;
    -webkit-appearance:none;

    width:58px;
    height:32px;

    background:#cfd6df;
    border-radius:40px;

    position:relative;
    cursor:pointer;

    transition:.25s;
    border:none;
    outline:none;
}

.bloque-sosterra input[type="checkbox"]:before{
    content:'';

    position:absolute;
    top:4px;
    left:4px;

    width:24px;
    height:24px;

    border-radius:50%;
    background:#fff;

    transition:.25s;

    box-shadow:0 2px 6px rgba(0,0,0,.25);
}

.bloque-sosterra input[type="checkbox"]:checked{
    background:#22c55e;
}

.bloque-sosterra input[type="checkbox"]:checked:before{
    transform:translateX(26px);
}

/* =========================
   COMENSALES EN UNA FILA
========================= */

.comensales-grid,
.gratuitos-grid {
    display:flex;
    justify-content:center;
    align-items:flex-start;
    gap:22px;
    flex-wrap:nowrap;
    width:100%;
}

.comensales-grid > div,
.gratuitos-grid > div {
    flex:1;
    max-width:180px;
    min-width:120px;
    text-align:center;
}

/* inputs */

.comensales-grid input,
.gratuitos-grid input {
    width:100%;
}

/* responsive móvil */

@media (max-width:768px){

    .comensales-grid,
    .gratuitos-grid{
        gap:10px;
    }

    .comensales-grid > div,
    .gratuitos-grid > div{
        min-width:90px;
    }

    .bloque-sosterra{
        position:relative;
        right:auto;
        bottom:auto;
        margin-top:20px;
        justify-content:center;
    }
}













/* =========================================================
   SOSTERRA CENTRADO
========================================================= */

.bloque_sosterra_ios{

	width:100% !important;

	display:flex !important;
	align-items:center !important;
	justify-content:center !important;

	gap:16px !important;

	margin-top:10px !important;
}

/* TEXTO */
.bloque_sosterra_ios span{

	font-size:20px !important;
	font-weight:800 !important;

	color:#0f172a !important;
}

/* CHECK IOS */
.bloque_sosterra_ios input[type="checkbox"]{

	appearance:none !important;
	-webkit-appearance:none !important;

	width:54px !important;
	height:30px !important;

	border-radius:999px !important;

	background:#cbd5e1 !important;

	position:relative !important;

	cursor:pointer !important;

	transition:.25s !important;

	border:none !important;
}

/* BOLA */
.bloque_sosterra_ios input[type="checkbox"]::before{

	content:"";

	position:absolute;

	top:4px;
	left:4px;

	width:22px;
	height:22px;

	border-radius:50%;

	background:#fff;

	box-shadow:0 2px 6px rgba(0,0,0,.18);

	transition:.25s !important;
}

/* ACTIVO */
.bloque_sosterra_ios input[type="checkbox"]:checked{
	background:#22c55e !important;
}

/* MOVER */
.bloque_sosterra_ios input[type="checkbox"]:checked::before{
	transform:translateX(24px);
}



/* =========================
   BOTONES TONOS NARANJAS MODERNOS
========================= */

.boton_guardar,
.boton_borrar,
.boton_pdf,
.swal2-confirm,
.swal2-cancel {
	border: none;
	border-radius: 999px;
	color: #ffffff;
	font-weight: 800;
	font-size: 21px;
	min-height: 48px;
	text-align: center;
	padding: 0 22px;
	line-height: 48px;
	cursor: pointer;
	transition: all .25s ease;
	box-shadow: 0 8px 20px rgba(255, 140, 66, 0.20);
}

/* BOTÓN NARANJA PRINCIPAL */
.boton_guardar {
	background: linear-gradient(135deg, #ffb36b, #ff8c42);
}

/* BOTÓN NARANJA SUAVE */
.boton_borrar {
	background: linear-gradient(135deg, #ffd2a6, #ffb36b);
	color: #7a3d00;
}

/* BOTÓN NARANJA INTENSO */
.boton_pdf {
	background: linear-gradient(135deg, #ff9f5a, #ff6b35);
}

/* EFECTO HOVER */
.boton_guardar:hover,
.boton_borrar:hover,
.boton_pdf:hover,
.swal2-confirm:hover,
.swal2-cancel:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 26px rgba(255, 140, 66, 0.28);
	filter: brightness(1.04);
}

/* EFECTO CLICK */
.boton_guardar:active,
.boton_borrar:active,
.boton_pdf:active {
	transform: scale(0.98);
}



.tabla_botones td {
	padding: 10px;
}


.boton_guardar,
.boton_borrar,
.boton_pdf {
	letter-spacing: 0.3px;
}



/* Forzar tonos anaranjados aunque el PHP tenga style="background:..." */

input[value="Textos"] {
	background: linear-gradient(135deg, #ffc15c, #ff9f1c) !important;
	color: #7a3d00 !important;
}

input[value="Opciones"] {
	background: linear-gradient(135deg, #ffb37a, #ff884d) !important;
	color: #ffffff !important;
}

input[value="E-mail"] {
	background: linear-gradient(135deg, #ff9f6e, #ff7043) !important;
	color: #ffffff !important;
}

input[value="Textos"],
input[value="Opciones"],
input[value="E-mail"] {
	box-shadow: 0 8px 20px rgba(255, 140, 66, 0.22) !important;
	border-radius: 999px !important;
}
















/* SOLO RESUMEN */
#tabla_resumen table tr:first-child td {
	background: linear-gradient(135deg, #ffd38a, #ffb347) !important;
	color: #5c3300 !important;
}

/* Beneficio */
#tabla_resumen table tr:nth-child(2) td:first-child {
	background: linear-gradient(135deg, #fff3e6, #ffd9b3) !important;
	color: #8a4a00 !important;
}

/* Coste */
#tabla_resumen table tr:nth-child(3) td:first-child {
	background: linear-gradient(135deg, #fff8ef, #ffe4c7) !important;
	color: #8a5a2b !important;
}

/* Venta */
#tabla_resumen table tr:nth-child(4) td:first-child {
	background: linear-gradient(135deg, #ffe8d6, #ffc39b) !important;
	color: #8a3d00 !important;
}

/* Margen comercial */
#tabla_resumen table tr:nth-child(5) td:first-child {
	background: linear-gradient(135deg, #fff0df, #ffd6ad) !important;
	color: #9a4d00 !important;
}





/* =========================================================
   SOLO CABECERA SUPERIOR DE CADA BLOQUE
========================================================= */

/* SOLO TITULOS AZULES */
#tabla_salario_cocinero h2,
#tabla_salario_monitor h2,
#tabla_coste_cocinero h2,
#tabla_coste_monitor h2,
#tabla_factura_cocinero h2,
#tabla_factura_monitor h2,
#tabla_factura_monitor_unitaria h2,
#tabla_resumen h2{
	background: linear-gradient(135deg, #ffe0b8, #ffc57a) !important;
	color: #7a4300 !important;
	border: none !important;
	box-shadow: 0 4px 12px rgba(255,170,80,.12);
}





/* =========================================================
   SWEET ALERT BOTONES NARANJAS
========================================================= */

/* BOTÓN ACEPTAR */
.swal2-confirm {
	background: linear-gradient(135deg, #ffbe73, #ff944d) !important;
	border: none !important;
	border-radius: 18px !important;
	color: white !important;
	font-weight: 700 !important;
	box-shadow: 0 6px 18px rgba(255,140,66,.18) !important;
	transition: all .2s ease;
}

/* HOVER */
.swal2-confirm:hover {
	filter: brightness(1.04);
	transform: translateY(-1px);
	box-shadow: 0 8px 20px rgba(255,140,66,.24) !important;
}

/* CANCELAR */
.swal2-cancel {
	background: linear-gradient(135deg, #f1f2f6, #dfe3ea) !important;
	color: #3c4858 !important;
	border-radius: 18px !important;
	border: none !important;
	font-weight: 700 !important;
	box-shadow: 0 6px 18px rgba(0,0,0,.06) !important;
}






/* =========================================================
   BOTÓN FLOTANTE
========================================================= */

#modo-toggle{
	position:fixed;
	right:18px;
	bottom:18px;
	width:58px;
	height:58px;
	border-radius:50%;
	background:linear-gradient(135deg,#ffbe73,#ff884d);
	display:flex;
	align-items:center;
	justify-content:center;
	font-size:28px;
	cursor:pointer;
	z-index:999999;
	box-shadow:0 8px 25px rgba(0,0,0,.25);
	transition:.25s;
	user-select:none;
}

#modo-toggle:hover{
	transform:scale(1.08);
}

/* =========================================================
   DARK MODE SOLO AL ACTIVAR
========================================================= */

.dark-mode{
	background:#0f172a !important;
	color:#e5e7eb !important;
}

.dark-mode body{
	background:#0f172a !important;
	color:#e5e7eb !important;
}

/* cajas */
.dark-mode .contenido,
.dark-mode .contenedor,
.dark-mode table,
.dark-mode .tabla_presupuesto,
.dark-mode .tabla_usuario{
	background:#111827 !important;
	color:#e5e7eb !important;
}

/* textos */
.dark-mode td,
.dark-mode th,
.dark-mode label,
.dark-mode div,
.dark-mode span,
.dark-mode p,
.dark-mode h1,
.dark-mode h2,
.dark-mode h3{
	color:#e5e7eb !important;
}

/* inputs */
.dark-mode input,
.dark-mode select,
.dark-mode textarea{
	background:#1f2937 !important;
	color:#fff !important;
	border:1px solid #334155 !important;
}

/* readonly */
.dark-mode input[readonly]{
	background:#182233 !important;
}

/* sweetalert */
.dark-mode .swal2-popup{
	background:#111827 !important;
	color:white !important;
}


/* TEXTOS ROJOS -> NARANJA */

font[color="red"],
span[style*="color:red"],
div[style*="color:red"],
td[style*="color:red"],
label[style*="color:red"]{
	color:#ff8c42 !important;
}











/* =========================================================
   PRESUPUESTO DETALLE - TEXTOS ROJOS A NARANJA
========================================================= */

#tabla_salario_cocinero td[style*="color:red"],
#tabla_salario_monitor td[style*="color:red"],
#tabla_coste_cocinero td[style*="color:red"],
#tabla_coste_monitor td[style*="color:red"],
#tabla_factura_cocinero td[style*="color:red"],
#tabla_factura_monitor td[style*="color:red"],
#tabla_factura_monitor_unitaria td[style*="color:red"],
#tabla_resumen td[style*="color:red"],

#tabla_salario_cocinero input[style*="color:red"],
#tabla_salario_monitor input[style*="color:red"],
#tabla_coste_cocinero input[style*="color:red"],
#tabla_coste_monitor input[style*="color:red"],
#tabla_factura_cocinero input[style*="color:red"],
#tabla_factura_monitor input[style*="color:red"],
#tabla_factura_monitor_unitaria input[style*="color:red"],
#tabla_resumen input[style*="color:red"]{

	color:#ff944d !important;
}





















/* =========================================================
   SWEETALERT - TABLA RESULTADOS CENTROS
========================================================= */

html body .swal2-container .swal2-popup table:not(.tabla_swal),
html body .swal2-container .swal2-content table:not(.tabla_swal),
html body .swal2-container .swal2-html-container table:not(.tabla_swal) {
	width: 100% !important;
	border: 0 !important;
	border-width: 0 !important;
	border-style: hidden !important;
	border-color: transparent !important;
	border-collapse: separate !important;
	border-spacing: 0 8px !important;
	background: transparent !important;
	box-shadow: none !important;
}

/* Quitar bordes antiguos */
html body .swal2-container table:not(.tabla_swal) tr,
html body .swal2-container table:not(.tabla_swal) td,
html body .swal2-container table:not(.tabla_swal) th {
	border: 0 !important;
	border-width: 0 !important;
	border-style: none !important;
	border-color: transparent !important;
	outline: 0 !important;
}

/* Cabecera Centro / Localidad */
html body .swal2-container table:not(.tabla_swal) tr:first-child td,
html body .swal2-container table:not(.tabla_swal) tr:first-child th {
	background: linear-gradient(135deg, #ffd7a8, #ffb86b) !important;
	color: #7a4300 !important;
	font-size: 22px !important;
	font-weight: 900 !important;
	padding: 12px 14px !important;
	text-align: center !important;
}

/* Filas de resultados */
html body .swal2-container table:not(.tabla_swal) tr:not(:first-child) td {
	background: #fff8f1 !important;
	color: #374151 !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	padding: 12px 14px !important;
	box-shadow: 0 5px 14px rgba(255, 140, 66, .12) !important;
}

/* Redondeo */
html body .swal2-container table:not(.tabla_swal) tr td:first-child {
	border-radius: 16px 0 0 16px !important;
}

html body .swal2-container table:not(.tabla_swal) tr td:last-child {
	border-radius: 0 16px 16px 0 !important;
}

/* Hover */
html body .swal2-container table:not(.tabla_swal) tr:not(:first-child):hover td {
	background: #fff0df !important;
	cursor: pointer !important;
}

/* =========================================================
   IMPRESIÓN PANTALLA PRESUPUESTO
========================================================= */

@media print {

	/* Configuración de página */
	@page {
		size: A4 portrait;
		margin: 12mm;
	}

	html,
	body {
		background: #ffffff !important;
		color: #000000 !important;
		margin: 0 !important;
		padding: 0 !important;
		font-family: Arial, Helvetica, sans-serif !important;
		font-size: 11pt !important;
	}

	/* Ocultar elementos marcados */
	.no-imprimir {
		display: none !important;
		visibility: hidden !important;
	}
	
	/* Forzar salto de página en impresión */
	.salto-pagina-print {
		page-break-before: always !important;
		break-before: page !important;
	}

	/* Ocultar botones generales */
	input[type="button"],
	input[type="submit"],
	button,
	.boton_guardar,
	.boton_borrar,
	.boton_pdf,
	.boton_imprimir_pantalla {
		display: none !important;
		visibility: hidden !important;
	}

	/* Ocultar botones navegación */
	.navegacion,
	.navegacion * {
		display: none !important;
		visibility: hidden !important;
	}

	/* Quitar aspecto de tarjeta/contenedor web */
	.contenedor,
	.contenido,
	.linea_naranja {
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 0 !important;
		background: #ffffff !important;
		border: none !important;
		border-radius: 0 !important;
		box-shadow: none !important;
	}

	/* Ocultar cabecera/logo de la aplicación si no interesa */
	.encabezado {
		display: none !important;
	}

	/* Tablas más limpias */
	table {
		width: 100% !important;
		border-collapse: collapse !important;
		box-shadow: none !important;
	}

	tr,
	td,
	th {
		page-break-inside: avoid !important;
	}

	/* Inputs como texto plano */
	input,
	select,
	textarea {
		border: none !important;
		background: transparent !important;
		box-shadow: none !important;
		color: #000000 !important;
		font-family: Arial, Helvetica, sans-serif !important;
	}

	/* Inputs numéricos/readonly centrados o alineados */
	input[readonly],
	input[type="text"],
	input[type="number"] {
		padding: 0 !important;
		margin: 0 !important;
		min-height: auto !important;
		height: auto !important;
	}

	/* Evitar fondos degradados en impresión */
	* {
		box-shadow: none !important;
		text-shadow: none !important;
	}


	
	
/* =========================================================
   IMPRESIÓN - PERSONAL EN UNA SOLA FILA
   Cantidad | Tipo | Horas
   Periodos debajo
========================================================= */

.tabla_personal {
	display: block !important;

	width: 100% !important;
	max-width: 100% !important;

	margin: 0 0 4px 0 !important;
	padding: 0 !important;

	border: none !important;
	border-bottom: 1px solid #d8d8d8 !important;
	border-radius: 0 !important;

	background: transparent !important;
	box-shadow: none !important;

	page-break-inside: avoid !important;
	break-inside: avoid !important;
}

.tabla_personal tbody {
	display: block !important;
	width: 100% !important;
}

/* Primera fila */
.tabla_personal tr:first-child {
	display: flex !important;
	align-items: center !important;

	width: 100% !important;
	height: 20px !important;
	min-height: 20px !important;

	margin: 0 !important;
	padding: 0 !important;

	gap: 0 !important;
}

/* Celdas primera fila */
.tabla_personal tr:first-child td {
	display: flex !important;
	align-items: center !important;

	height: 20px !important;
	min-height: 20px !important;

	margin: 0 !important;
	padding: 0 6px !important;

	border: none !important;

	font-size: 10pt !important;
	line-height: 20px !important;
}

/* Ocultar celda botón borrar */
.tabla_personal tr:first-child td:nth-child(4) {
	display: none !important;
}

/* Cantidad */
.tabla_personal .numero {
	flex: 0 0 70px !important;
	width: 70px !important;
	min-width: 70px !important;
	max-width: 70px !important;

	justify-content: flex-end !important;
	text-align: right !important;

	padding-right: 8px !important;
}

/* Tipo */
.tabla_personal .personal {
	flex: 0 0 70% !important;
	width: 70% !important;
	max-width: 70% !important;
	min-width: 0 !important;

	justify-content: flex-start !important;
	text-align: left !important;

	padding-left: 20px !important;
}

/* Horas */
.tabla_personal .horas {
	flex: 0 0 90px !important;
	width: 90px !important;
	min-width: 90px !important;
	max-width: 90px !important;

	margin-left: auto !important;
	margin-right: 70px !important;

	justify-content: flex-end !important;
	text-align: right !important;

	white-space: nowrap !important;
}

/* Inputs primera fila */
.tabla_personal tr:first-child input {
	display: block !important;

	height: 20px !important;
	min-height: 20px !important;

	margin: 0 !important;
	padding: 0 !important;

	border: none !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;

	font-size: 10pt !important;
	font-weight: 800 !important;
	line-height: 20px !important;

	color: #000000 !important;
	white-space: nowrap !important;
	overflow: visible !important;
}

/* Input cantidad */
.tabla_personal .numero input {
	width: 100% !important;
	text-align: right !important;
}

/* Input tipo */
.tabla_personal .personal input {
	width: auto !important;
	max-width: 100% !important;
	text-align: left !important;
}

/* Input horas */
.tabla_personal .horas input {

	width: 90px !important;
	min-width: 90px !important;
	max-width: 90px !important;

	text-align: right !important;
	white-space: nowrap !important;
}

/* Segunda fila */
.tabla_personal tr:nth-child(2) {
	display: block !important;

	width: 100% !important;

	margin: 0 !important;
	padding: 0 !important;
}

/* Celda de periodos */
.tabla_personal tr:nth-child(2) td {
	display: block !important;

	width: 100% !important;

	margin: 0 !important;
	padding: 0 6px 10px 116px !important;

	font-size: 10pt !important;
	line-height: 1.2 !important;

	text-align: left !important;
	color: #333333 !important;
}

/* Periodos */
.tabla_personal .periodo_empleado_linea {
	display: inline !important;

	margin: 0 !important;
	padding: 0 !important;

	font-size: 10pt !important;
	font-weight: 400 !important;
	line-height: 1.2 !important;

	text-align: left !important;
	white-space: nowrap !important;

	color: #333333 !important;
}


	/* Reducir espacio general de la tabla principal */
	.tabla_presupuesto {
		border-spacing: 4px !important;
		margin-bottom: 8px !important;
	}

	.tabla_presupuesto td {
		padding: 3px 5px !important;
		vertical-align: top !important;
	}

	/* Cabecera del centro: menos aire */
	.label_seleccionar {
		margin: 0 auto 3px auto !important;
		font-size: 14pt !important;
		line-height: 1.1 !important;
	}

	/* Cabecera del centro: permitir centro + población dentro del bocadillo */
	.seleccionar,
	.tabla_presupuesto select {
		height: auto !important;
		min-height: 42px !important;
		max-height: none !important;

		padding: 4px 8px !important;
		margin-bottom: 6px !important;

		font-size: 10.5pt !important;
		font-weight: 700 !important;
		line-height: 1.15 !important;

		text-align: center !important;
		white-space: normal !important;
		overflow: visible !important;

		border: 1px solid #999 !important;
		border-radius: 999px !important;
		background: #ffffff !important;
	}
	
	/* Si el centro se pinta como bloque con saltos de línea */
	.seleccionar br,
	.tabla_presupuesto select br {
		line-height: 1 !important;
	}

	#mostrar_bloque_centro_asociado {
		height: auto !important;
		min-height: 42px !important;
		max-height: none !important;

		padding: 4px 8px !important;
		margin-top: 8px !important;
		margin-bottom: 8px !important;

		line-height: 1.15 !important;
		overflow: visible !important;
		white-space: normal !important;
	}

	/* Centro asociado / bloque del centro, si existe */
	#mostrar_bloque_centro_asociado,
	.bloque-centro {
		margin-top: 6px !important;
		margin-bottom: 8px !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;

		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;

		overflow: visible !important;
	}

	/* Títulos Comensales Diarios / Menús gratuitos */
	.tabla_presupuesto td[colspan="2"] > div[style*="text-align:center"] {
		margin: 4px 0 6px 0 !important;
		font-size: 12pt !important;
		line-height: 1.1 !important;
		font-weight: 700 !important;
	}

	/* Periodos: Septiembre, Octubre a Mayo, Junio */
	.tabla_presupuesto td[colspan="2"] > label.etiqueta_centrado.etiqueta_izquierda {
		margin: 0 0.6% 8px 0.6% !important;
		font-size: 9pt !important;
		line-height: 1.05 !important;
		font-weight: 600 !important;
	}

	/* Inputs de los periodos */
	.tabla_presupuesto td[colspan="2"] > label.etiqueta_centrado.etiqueta_izquierda input {
		height: 22px !important;
		min-height: 22px !important;
		margin: 3px auto 0 auto !important;
		padding: 0 4px !important;
		font-size: 10pt !important;
		line-height: 22px !important;
		border: none !important;
		background: transparent !important;
	}

	/* IMPRESIÓN - CABECERA CENTRO + POBLACIÓN */

	#mostrar_bloque_centro_asociado {
		display: block !important;

		width: 90% !important;
		max-width: 520px !important;

		float: none !important;
		clear: both !important;

		margin: 4px auto 8px auto !important;
		padding: 7px 12px 8px 12px !important;

		border: 1px solid #777 !important;
		border-radius: 16px !important;

		background: #ffffff !important;

		text-align: center !important;

		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;

		overflow: visible !important;
		line-height: 1.15 !important;
	}

	/* Nombre del centro */
	#mostrar_bloque_centro_asociado a,
	#salid_centro_nombre {
		display: block !important;

		float: none !important;
		clear: both !important;

		width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;

		font-size: 11pt !important;
		font-weight: 800 !important;
		line-height: 1.15 !important;

		text-align: center !important;
		color: #000000 !important;
		text-decoration: none !important;
	}

	/* Output de localidad */
	#salid_centro_localidad {
		display: block !important;

		float: none !important;
		clear: both !important;

		width: 100% !important;
		margin: 2px 0 0 0 !important;
		padding: 0 !important;

		text-align: center !important;
		line-height: 1.1 !important;
	}

	/* Div interno que ahora viene con float:left inline */
	#salid_centro_localidad div {
		display: block !important;

		float: none !important;
		clear: both !important;

		width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;

		font-size: 9.5pt !important;
		font-weight: 400 !important;
		font-style: italic !important;
		line-height: 1.1 !important;

		text-align: center !important;
		color: #000000 !important;
	}
	
	/* Reducir márgenes superior e inferior de los UL en impresión */
	#tabla_calculo ul {
		margin-top: 0 !important;
		margin-bottom: 0 !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}

	/* Resumen Totales: reducir aire vertical en columnas */
	#tabla_calculo .columna_1 ul,
	#tabla_calculo .columna_2 dl {
		margin-top: 0 !important;
		margin-bottom: 0 !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}
	
	/* Tabla interna de Venta monitores */
	#tabla_calculo table {
		border-collapse: collapse !important;
		border-spacing: 0 !important;
	}

	/* Filas de tablas internas */
	#tabla_calculo table tr {
		margin: 0 !important;
		padding: 0 !important;
	}

	/* Celdas de tablas internas */
	#tabla_calculo table td {
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		line-height: 1.25 !important;
		vertical-align: middle !important;
	}

	/* Outputs/inputs dentro de Venta monitores */
	#tabla_calculo table td output,
	#tabla_calculo table td input {
		margin-top: 0 !important;
		margin-bottom: 0 !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;

		height: auto !important;
		min-height: 0 !important;

		line-height: 1.05 !important;
	}

	/* Resumen Totales: columna derecha sin negrita */
	#tabla_calculo > tbody > tr > td.columna_2,
	#tabla_calculo > tbody > tr > td.columna_2 > output,
	#tabla_calculo > tbody > tr > td.columna_2 > input {
		font-weight: 400 !important;
	}

}













/* ===================== MULTI-SERVICIO ===================== */
.tabla_presupuesto .bloque_servicios{width:100%;box-sizing:border-box;padding:6px 0;font-size:13px;text-align:left;}
.tabla_presupuesto .bloque_servicios *{box-sizing:border-box;}
.tabla_presupuesto .bloque_servicios input,
.tabla_presupuesto .bloque_servicios select{display:inline-block !important;width:auto !important;min-height:0 !important;height:30px !important;margin:0 !important;padding:2px 6px !important;font-size:14px !important;font-weight:400 !important;border:1px solid #ccc !important;border-radius:6px !important;background:#fff !important;text-align:left !important;box-shadow:none !important;float:none !important;}
.tabla_presupuesto .bloque_servicios input[type="number"]{text-align:right !important;}
.tabla_presupuesto .bloque_servicios label{display:inline-block !important;width:auto !important;float:none !important;font-size:12px !important;font-weight:400 !important;text-align:left !important;line-height:1.2 !important;margin:0 !important;color:#444 !important;}

/* cabecera */
.tabla_presupuesto .serv_cabecera{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px;}
.tabla_presupuesto .serv_titulo{font-size:18px;font-weight:700;color:#e8531e;}
.tabla_presupuesto .bloque_servicios .serv_tipo_cliente select{margin-left:6px !important;}
.tabla_presupuesto .bloque_servicios input.serv_btn_add{margin-left:auto !important;background:#e8531e !important;color:#fff !important;border:none !important;font-weight:700 !important;cursor:pointer;padding:4px 12px !important;}

/* cada servicio */
.tabla_presupuesto .serv_bloque{border:1px solid #ddd;border-radius:8px;padding:8px;margin-bottom:10px;background:#fafafa;}
.tabla_presupuesto .serv_fila_cab{display:flex;gap:6px;align-items:center;margin-bottom:6px;}
.tabla_presupuesto .bloque_servicios select.serv_select_tipo{font-weight:700 !important;min-width:130px;}
.tabla_presupuesto .bloque_servicios input.serv_nombre{flex:1 !important;width:auto !important;}
.tabla_presupuesto .bloque_servicios input.serv_btn_quitar,
.tabla_presupuesto .bloque_servicios input.serv_btn_quitar_fila{background:#c0392b !important;color:#fff !important;border:none !important;width:30px !important;padding:0 !important;text-align:center !important;cursor:pointer;}

/* meses (chips) */
.tabla_presupuesto .serv_meses{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px;}
.tabla_presupuesto .bloque_servicios label.serv_mes{border:1px solid #ccc !important;border-radius:12px !important;padding:3px 9px !important;cursor:pointer;background:#fff;font-size:12px !important;font-weight:700 !important;color:#666 !important;user-select:none;}
.tabla_presupuesto .bloque_servicios label.serv_mes.on{background:#e8531e;color:#fff !important;border-color:#e8531e !important;}
.tabla_presupuesto .bloque_servicios label.serv_mes input[type="checkbox"]{display:none !important;}

/* parámetros */
.tabla_presupuesto .serv_params{display:flex;flex-wrap:wrap;gap:8px 14px;margin-bottom:8px;}
.tabla_presupuesto .bloque_servicios .serv_params label{display:inline-flex !important;flex-direction:column;font-size:11px !important;color:#666 !important;}
.tabla_presupuesto .bloque_servicios .serv_params input{width:120px !important;margin-top:2px !important;}

/* tabla comensales x meses */
.tabla_presupuesto .serv_scroll{overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch;}
.tabla_presupuesto table.serv_tabla{border-collapse:collapse;font-size:12px;width:auto;table-layout:auto;}
.tabla_presupuesto table.serv_tabla th{background:#eee;padding:4px 3px;font-weight:700;white-space:nowrap;text-align:center;font-size:11px;}
.tabla_presupuesto table.serv_tabla td{padding:2px 2px;text-align:center;vertical-align:middle;width:auto;}
.tabla_presupuesto .bloque_servicios table.serv_tabla input[type="number"]{width:44px !important;height:26px !important;padding:1px 3px !important;font-size:12px !important;}
.tabla_presupuesto .bloque_servicios table.serv_tabla input.serv_gra{display:block !important;margin-top:2px !important;color:#999 !important;border-color:#e3e3e3 !important;font-size:11px !important;}
.tabla_presupuesto .bloque_servicios table.serv_tabla input.serv_precio{width:70px !important;}
.tabla_presupuesto .bloque_servicios table.serv_tabla select{height:26px !important;font-size:12px !important;padding:0 4px !important;}
.tabla_presupuesto table.serv_tabla .serv_th_fijo,
.tabla_presupuesto table.serv_tabla .serv_td_fijo{text-align:left;white-space:nowrap;}
.tabla_presupuesto table.serv_tabla .serv_fila_dias td{background:#f3f3f3;}
.tabla_presupuesto .bloque_servicios table.serv_tabla .serv_fila_dias input{background:#fff8e1 !important;}
.tabla_presupuesto .serv_sub{font-size:10px;color:#888;margin-top:2px;}
.tabla_presupuesto .serv_sub a,.tabla_presupuesto .serv_acciones a{text-decoration:none;color:#e8531e;font-weight:700;}
.tabla_presupuesto .serv_precio_auto{font-size:10px;color:#888;}
.tabla_presupuesto .serv_acciones{margin:6px 0;font-size:12px;}

/* resúmenes */
.tabla_presupuesto .serv_resumen_serv,.tabla_presupuesto .serv_resumen{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;padding:4px 0;color:#333;}
.tabla_presupuesto .serv_resumen{border-top:2px solid #e8531e;font-size:13px;margin-top:4px;padding-top:6px;}
.tabla_presupuesto .serv_aviso{color:#c0392b;font-weight:700;padding:6px;}