:root{
	--ft-menu-w: 0px;
	--ft-menu-expanded: 216px;
	--ft-menu-collapsed: 64px;
	--ft-ink: #1E293B;
	--ft-line: #e2e8f0;
}
body.ft_con_menu{
	--ft-menu-w: var(--ft-menu-expanded);
}
body.ft_con_menu.ft_menu_colapsado{
	--ft-menu-w: var(--ft-menu-collapsed);
}
body.ft_sin_menu{
	--ft-menu-w: 0px;
}
body{
	padding: 0px;
	margin: 0px;
	font: 1em helvetica;
}
input[type="file"]{
	width: 0.1px;
	height: 0.1px;
	opacity: 0;
	overflow: hidden;
	position: absolute;
	z-index: -1;
}
h2{
	margin: 0px;
	padding: 0px;
	color: #334155;
}
input:focus{
	outline:none !important;
	outline-width: 0 !important;
	box-shadow: none;
	-moz-box-shadow: none;
	-webkit-box-shadow: none;
}
div:focus{
	outline:none !important;
	outline-width: 0 !important;
	box-shadow: none;
	-moz-box-shadow: none;
	-webkit-box-shadow: none;
}
textarea:focus{
	outline:none !important;
	outline-width: 0 !important;
	box-shadow: none;
	-moz-box-shadow: none;
	-webkit-box-shadow: none;
}
#area_pestanas{
	position: fixed;
	top: 0px;
	left: var(--ft-menu-w, 0px);
	right: 0px;
	height: 42px;
	padding: 6px 12px 0;
	width: auto;
	z-index: 80;
	transition: left .2s ease;
	background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
	border-bottom: 1px solid #e2e8f0;
	box-sizing: border-box;
	overflow: none;
	white-space: nowrap;
}
#contenedor_botones{
	width: auto;
	min-width: 100%;
	height: auto;
	display: inline-flex;
	align-items: flex-end;
	gap: 6px;
	padding: 0 2px;
}
#area_aplicacion{
	position: fixed;
	bottom: 0px;
	left: var(--ft-menu-w, 0px);
	right: 0px;
	top: 42px;
	transition: left .2s ease;
}
.aplicacion{
	position: fixed;
	bottom: 0px;
	left: var(--ft-menu-w, 0px);
	right: 0px;
	top: 42px;
	background-color: #ffffff;
	transition: left .2s ease;
}
.barra_titulo{
	width: 100%;
	height: 44px;
	min-height: 44px;
	padding: 0 12px;
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	box-sizing: border-box;
	text-align: left;
	color: #0f172a;
	background: #ffffff;
	border-bottom: 1px solid #e2e8f0;
}
.barra_titulo > div > img,
.barra_titulo img{
	height: 18px !important;
	width: 18px !important;
	object-fit: contain;
	cursor: pointer;
}
.barra_titulo_left{
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
	flex: 1;
}
.barra_titulo_icon{
	width: 28px !important;
	height: 28px !important;
	padding: 5px;
	border-radius: 8px;
	background: #f1f5f9;
	box-sizing: border-box;
	flex-shrink: 0;
}
.barra_titulo_text{
	font-size: 14px;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: inherit;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.barra_titulo_actions{
	display: flex;
	align-items: center;
	gap: 4px;
	flex-shrink: 0;
}
.barra_accion{
	width: 32px;
	height: 32px;
	border: 0;
	border-radius: 8px;
	background: transparent;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	padding: 0;
}
.barra_accion:hover{
	background: #f1f5f9;
}
.barra_accion img{
	height: 16px !important;
	width: 16px !important;
	opacity: 0.75;
}
.barra_accion:hover img{
	opacity: 1;
}
.barra_titulo_des{
	height: 44px;
	min-height: 44px;
	padding: 0 12px !important;
	margin: 0 !important;
	width: 100%;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	background: #f8fafc;
	color: #64748b;
	border-bottom: 1px solid #e2e8f0;
	vertical-align: middle;
	text-align: left;
}
.barra_titulo_des .barra_titulo_icon{
	background: #e2e8f0;
}
.barra_titulo_des img {
	height: 16px !important;
	opacity: 0.55;
}

.pestana {
	min-width: 0;
	max-width: 200px;
	width: auto;
	height: 32px;
	padding: 0 8px 0 10px;
	position: relative;
	background: #ffffff;
	color: #475569;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0 !important;
	cursor: pointer;
	border: 1px solid #e2e8f0;
	border-bottom: 0;
	border-radius: 10px 10px 0 0;
	box-sizing: border-box;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: -0.01em;
	box-shadow: 0 -1px 0 rgba(15, 23, 42, 0.02);
	transition: background-color .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	vertical-align: bottom;
}
.pestana:hover{
	background: #f8fafc;
	color: #0f172a;
	border-color: #cbd5e1;
}
.pestana:not(.pestana_des){
	background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%);
	color: #f8fafc;
	border-color: #0f172a;
	box-shadow: 0 4px 12px rgba(15, 23, 42, 0.18);
	z-index: 1;
}
.pestana:not(.pestana_des):hover{
	background: linear-gradient(180deg, #334155 0%, #1e293b 100%);
	color: #ffffff;
	border-color: #1e293b;
}
.pestana_icon,
.pestana > img:not(.pestana_cerrar img){
	width: 16px;
	height: 16px;
	max-width: 16px;
	max-height: 16px;
	object-fit: contain;
	flex-shrink: 0;
	opacity: 0.85;
}
.pestana:not(.pestana_des) .pestana_icon,
.pestana:not(.pestana_des) > img{
	filter: brightness(0) invert(1);
	opacity: 0.95;
}
.pestana_txt{
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	line-height: 1.2;
}
.pestana_cerrar{
	width: 20px;
	height: 20px;
	border: 0;
	border-radius: 6px;
	background: transparent;
	padding: 0;
	margin: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	flex-shrink: 0;
	opacity: 0.55;
}
.pestana_cerrar:hover{
	opacity: 1;
	background: rgba(15, 23, 42, 0.08);
}
.pestana:not(.pestana_des) .pestana_cerrar:hover{
	background: rgba(255, 255, 255, 0.14);
}
.pestana_cerrar img{
	width: 11px !important;
	height: 11px !important;
	max-width: 11px;
	max-height: 11px;
	object-fit: contain;
}
.pestana:not(.pestana_des) .pestana_cerrar img{
	filter: brightness(0) invert(1);
}
.pestana > img{
	max-width: 16px;
	max-height: 16px;
}
.div_relleno{
	display: none;
}
.pestana_des{
	background: #ffffff;
	color: #64748b;
	border-color: #e2e8f0;
	box-shadow: none;
}
.pestana_des:hover{
	background: #f8fafc;
	color: #0f172a;
}
.pestana_des > img,
.pestana_des .pestana_icon{
	opacity: 0.55;
	filter: none;
}
.pestana_des:hover > img,
.pestana_des:hover .pestana_icon{
	opacity: 0.85;
}
.div00{
	display: inline-block;
	padding: 0px;
	margin: 0px;
	vertical-align: top;
}
.div24{
	display: inline-block;
	padding: 0px;
	margin: 0px;
	vertical-align: top;
	width: 24%;
}
.div25{
	display: inline-block;
	padding: 0px;
	margin: 0px;
	vertical-align: top;
	width: 25%;
}
.div32{
	display: inline-block;
	padding: 0px;
	margin: 0px;
	vertical-align: top;
	width: 32%;
}
.div33{
	display: inline-block;
	padding: 0px;
	margin: 0px;
	vertical-align: top;
	width: 33%;
}
.div45{
	text-align: left;
	display: inline-block;
	padding: 0px;
	margin: 0px;
	vertical-align: top;
	width: 45%;
}
.div49{
	text-align: left;
	display: inline-block;
	padding: 0px;
	margin: 0px;
	vertical-align: top;
	width: 49%;
}

.div60{
	display: inline-block;
	padding: 0px;
	margin: 0px;
	vertical-align: top;
	width: 60%;
}

.div66{
	display: inline-block;
	padding: 0px;
	margin: 0px;
	vertical-align: top;
	width: 66%;
}

.div69{
	display: inline-block;
	padding: 0px;
	margin: 0px;
	vertical-align: top;
	width: 69%;
}

.div73{
	display: inline-block;
	padding: 0px;
	margin: 0px;
	vertical-align: top;
	width: 73%;
}

.div74{
	display: inline-block;
	padding: 0px;
	margin: 0px;
	vertical-align: top;
	width: 74%;
}

.div90{
	display: inline-block;
	padding: 0px;
	margin: 0px;
	vertical-align: top;
	width: 90%;
}

.div100{
	display: inline-block;
	padding: 0px;
	margin: 0px;
	vertical-align: top;
	width: 100%;
}
.divcenter{
	text-align: center;
}
.divlogin{
	background-color: #ffffffe8;
	border-radius: 10px;
	-webkit-box-shadow: 10px 10px 10px 5px rgba(0,0,0,0.36);
	-moz-box-shadow: 10px 10px 10px 5px rgba(0,0,0,0.36);
	box-shadow: 10px 10px 10px 5px rgba(0,0,0,0.36);
}
.divleft{
	text-align: left !important;
}
.divright{
	text-align: right;
}
.forzar_izquierda{
	float: left;
}
.forzar_derecha{
	float: right;
}
/*
#area_pestanas::-webkit-scrollbar {
	-webkit-appearance: none;
	background-color: #ffffff00;
}

#area_pestanas::-webkit-scrollbar:vertical {
	display: none;
}

#area_pestanas::-webkit-scrollbar-button:increment,#area_pestanas::-webkit-scrollbar-button {
	display: none;
} 

#area_pestanas::-webkit-scrollbar:horizontal {
	height: 5px;
	margin: 0px;
	background-color: #1E293B;
}

#area_pestanas::-webkit-scrollbar-thumb {
	background-color: #2b3b55;
	border-radius: 20px;
	border: 2px solid #2b3b55;
}

#area_pestanas::-webkit-scrollbar-track {
	border-radius: 10px;  
}
*/
.texto_login{
	width: 85%;
	padding: 7.5%;
	text-align: justify;
}

/* Login moderno Formula Talleres */
body.ft_login_body #area_aplicacion,
body.ft_sin_menu.ft_login_body #area_aplicacion{
	background:
		radial-gradient(1000px 480px at 8% -10%, #dbeafe 0%, transparent 55%),
		radial-gradient(800px 420px at 100% 0%, #ccfbf1 0%, transparent 52%),
		linear-gradient(160deg, #f8fafc 0%, #e2e8f0 100%) !important;
}
body.ft_login_body #area_pestanas{
	background: transparent;
}
.ft_login_page{
	min-height: calc(100vh - 50px);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px 16px 40px;
	box-sizing: border-box;
}
.ft_login_shell{
	width: min(920px, 100%);
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	background: #fff;
	border: 1px solid #e2e8f0;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 24px 60px rgba(15, 23, 42, 0.12);
}
.ft_login_brand{
	background: linear-gradient(165deg, #0f172a 0%, #1e293b 58%, #0f766e 160%);
	color: #e2e8f0;
	padding: 36px 32px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.ft_login_brand_mark{
	width: 52px;
	height: 52px;
	border-radius: 14px;
	background: rgba(255,255,255,.1);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 18px;
}
.ft_login_brand_mark img{
	width: 28px;
	height: 28px;
	object-fit: contain;
	filter: brightness(0) invert(1);
}
.ft_login_brand h1{
	margin: 0 0 10px;
	font-size: 1.7em;
	letter-spacing: -0.03em;
	color: #fff;
}
.ft_login_brand p{
	margin: 0;
	line-height: 1.5;
	color: #cbd5e1;
	font-size: 14px;
}
.ft_login_points{
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
}
.ft_login_points li{
	position: relative;
	padding: 8px 0 8px 18px;
	font-size: 13px;
	color: #94a3b8;
	border-top: 1px solid rgba(255,255,255,.08);
}
.ft_login_points li::before{
	content: "";
	position: absolute;
	left: 0;
	top: 15px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #2dd4bf;
}
.ft_login_panel{
	padding: 36px 32px;
	text-align: left;
}
.ft_login_panel h2{
	margin: 0 0 6px;
	color: #0f172a;
	font-size: 1.35em;
	letter-spacing: -0.02em;
}
.ft_login_hint{
	margin: 0 0 20px;
	color: #64748b;
	font-size: 13px;
	line-height: 1.45;
}
.ft_login_label{
	display: block;
	margin: 0 0 6px;
	font-size: 12px;
	font-weight: 600;
	color: #334155;
	letter-spacing: .02em;
	text-transform: uppercase;
}
.ft_login_input.formulario{
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	padding: 11px 12px;
	margin-bottom: 14px;
	background: #fff;
	box-shadow: none;
}
.ft_login_input.formulario:hover,
.ft_login_input.formulario:focus{
	border-color: #0f766e;
	box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.12);
}
.ft_login_btn.boton{
	width: 100%;
	margin-top: 6px;
	border-radius: 10px;
	padding: 12px 16px;
	background: #0f766e;
	border-color: #0f766e;
	font-weight: 600;
}
.ft_login_btn.boton:hover{
	filter: brightness(1.05);
}
.ft_login_links{
	margin-top: 16px;
	text-align: center;
}
.ft_login_links a{
	color: #0f766e;
	text-decoration: none;
	font-size: 13px;
	font-weight: 600;
}
.ft_login_links a:hover{
	text-decoration: underline;
}
.ft_login_sep{
	margin: 0 8px;
	color: #94a3b8;
}
.ft_reset_debug{
	margin-top: 16px;
	text-align: left;
}
.ft_reset_debug_box{
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	padding: 12px;
	font-size: 12px;
	color: #334155;
	word-break: break-all;
	line-height: 1.45;
}
.ft_reset_debug_box a{
	color: #0f766e;
}
@media (max-width: 820px){
	.ft_login_shell{
		grid-template-columns: 1fr;
	}
	.ft_login_brand{
		padding: 28px 24px 22px;
	}
	.ft_login_points{
		display: none;
	}
	.ft_login_panel{
		padding: 28px 24px 32px;
	}
}
.formulario{
	border: 1px solid #e2e8f0;
	padding: 9px 12px;
	display: inline-block;
	border-radius: 10px;
	width: 100%;
	margin-bottom: 6px;
	background: #ffffff;
	color: #0f172a;
	font: inherit;
	font-size: 13px;
	line-height: 1.35;
	box-sizing: border-box;
	box-shadow: 0 1px 1px rgba(15, 23, 42, 0.03);
	transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
	outline: none;
	vertical-align: middle;
	-webkit-appearance: none;
	appearance: none;
}
input.formulario,
select.formulario,
textarea.formulario{
	max-width: 100%;
}
select.formulario,
select{
	height: auto;
	min-height: 38px;
	transform: none;
	padding-right: 32px;
	background-color: #ffffff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 10px center;
	background-size: 16px 16px;
	cursor: pointer;
}
textarea.formulario{
	min-height: 88px;
	resize: vertical;
	line-height: 1.45;
}
.formulario::placeholder{
	color: #94a3b8;
}
.formulario:hover{
	border-color: #cbd5e1;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}
.formulario:focus,
.formulario:focus-visible{
	border-color: #0f766e;
	box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.14);
	background: #ffffff;
}
.formulario:disabled,
.formulario[readonly]{
	background: #f8fafc;
	color: #64748b;
	cursor: default;
	box-shadow: none;
}
.formulario:active{
	border-color: #0f766e;
	box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.14);
}
.boton, .div_custom, .botonE{
	/*background: -webkit-linear-gradient(top, #9394d3, #9394d3, #3e3fac, #3e3fac, #3e3fac, #3e3fac);*/
	background-color: #475569;
	padding: 7px;
	color: #ffffff;
	border-radius: 0px;
	cursor: pointer;
	border-radius: 3px;
}

.botonE{
	background-color: #0891B2;
}

.div_custom{
	width: 90px;
	text-align: center;
}
.boton_cancelar, .btn_red{
	/*background: -webkit-linear-gradient(top, #d39393, #d39393, #a42424, #a42424, #a42424, #a42424);*/
	background-color: #f94242;
}
.boton_cancelar, .btn_red:hover{
	/*background: -webkit-linear-gradient(top, #eb2a2a, #d39393, #eb2a2a, #eb2a2a, #eb2a2a, #eb2a2a);*/
	background-color: #f83232;

}
.area_mensaje{
	width: 96%;
	padding: 2%;
	background-color: #ffffff;
}
.msgBox{
	position: fixed;
	width: 500px;
	z-index: 210;
	display: none;
	border: 1px solid #cbd5e1;
	border-radius: 12px;
	overflow: hidden;
	-webkit-box-shadow: 0 18px 40px rgba(15, 23, 42, 0.28);
	-moz-box-shadow: 0 18px 40px rgba(15, 23, 42, 0.28);
	box-shadow: 0 18px 40px rgba(15, 23, 42, 0.28);
	background: #ffffff;
}
.msgBox .barra_titulo{
	background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%);
	color: #f8fafc;
	border-bottom: 1px solid rgba(15, 23, 42, 0.85);
}
.msgBox .barra_titulo_des{
	background: linear-gradient(180deg, #334155 0%, #1e293b 100%);
	color: #cbd5e1;
	border-bottom: 1px solid rgba(15, 23, 42, 0.7);
}
.msgBox .barra_titulo .barra_titulo_icon,
.msgBox .barra_titulo_des .barra_titulo_icon{
	background: rgba(255, 255, 255, 0.12);
}
.msgBox .barra_titulo img,
.msgBox .barra_titulo_des img{
	filter: brightness(0) invert(1);
}
.msgBox .barra_accion:hover{
	background: rgba(255, 255, 255, 0.12);
}
.msgBox .area_mensaje{
	border-radius: 0 0 12px 12px;
}

.item_home{
	width: 19%;
	display: inline-block;
	cursor: pointer;
	font: 1em helvetica;
}

.item_home:hover{
	-webkit-box-shadow: 10px 10px 10px 5px rgba(0,0,0,0.36);
	-moz-box-shadow: 10px 10px 10px 5px rgba(0,0,0,0.36);
	box-shadow: 10px 10px 10px 5px rgba(0,0,0,0.36);
	border-radius: 15px;
}

.tabla{
	width: 98%;
	margin: 0px;
	margin-left: 1%;
	margin-right: 1%;
	padding: 0px;
	border: 0px;
	border-spacing: 0px;
	border-collapse: separate;
	border-collapse: collapse;
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.tr_head{
	background: linear-gradient(180deg, #334155 0%, #1e293b 100%);
	color: #ffffff;
	text-align: center;
	font: 600 12px/1.35 system-ui, -apple-system, "Segoe UI", sans-serif;
	letter-spacing: 0.02em;
}

.borde_tabla td,
.borde_tabla th {
    border-left: 1px solid #E2E8F0;
    border-right: 1px solid #E2E8F0;
    padding: 8px;
}

th{
	font: 600 12px/1.35 system-ui, -apple-system, "Segoe UI", sans-serif !important;
}
.tabla .tr_head td,
.tabla .tr_head th{
	padding: 11px 12px;
	border-bottom: 1px solid #1e293b;
	white-space: nowrap;
}
.tabla .tr_content td,
.tabla .tr_content th{
	padding: 10px 12px;
	border-bottom: 1px solid #f1f5f9;
	vertical-align: middle;
	font-size: 13px;
	line-height: 1.4;
}
.tabla .tr_content:last-child td{
	border-bottom: 0;
}
.tr_content{
	cursor: pointer;
	padding: 3px;
	color: #475569;
	background: #ffffff;
	transition: background-color .12s ease, color .12s ease;
}
.tr_content:nth-child(even){
	background-color: #f8fafc;
}
.tr_content:hover{
	background-color: #e0f2fe;
	color: #0f172a;
}
.tr_content:active{
	background-color: #bae6fd;
	color: #0f172a;
}
.tabla .td_acciones,
.tabla .tr_head .td_acciones{
	width: 52px;
	text-align: center;
}
.tabla .td_acciones img{
	height: 22px !important;
	width: 22px !important;
	object-fit: contain;
	opacity: .85;
}
.area_trabajo .tabla{
	margin-top: 4px;
}
.item_menu{
	cursor: pointer;
	padding: 3px;
	border-bottom: 1px solid #666666;
	color: #000000;
}
.item_menu:hover{
	background-color: #E0F2FE;
	color: #0369A1;
}
.item_menu:active{
	background-color: #212257;
	color: #ffffff;
}
.boton_usuario{
	position: fixed;
	top: 0px;
	right: 0px;
	height: 30px;
	width: 30px;
	z-index: 1000;
}
.boton_usuario img{
	width: 30px;
	height: 30px;
}
.boton_usuario > .div100:hover > .acciones_usuario{
	display: block;
}

.td_acciones{
	width: 32px;;
}

.acciones_usuario{
	position: absolute;
	width: 190px;
	display: none;
	background-color: #dddddd;
	border: 1px solid #555555;
	transform: translate(-162px, -2px);
}

.acciones_usuario img{
	height: 18px;
	width: 18px;
}

.area_aplicacion{
	overflow-y: auto;
	position: fixed;
	top: 86px;
	left: var(--ft-menu-w, 0px);
	right: 0px;
	bottom: 0px;
	text-align: center;
	background-color: #F8FAFC;
	transition: left .2s ease;
	-webkit-overflow-scrolling: touch;
}

.menu_padre{
	position: relative;
	z-Index: 49 !important;
}

.menu_hijo{
	position: absolute;
	display: none;
	width: 190px;
	background-color: #ffffff;
	border: 1px solid #E2E8F0;
	cursor:pointer;
	transform: translate(-160px, 0px);
	z-Index: 51 !important;
}

.menu_hijo img{
	height: 18px;
	width: 18px;
}

.menu_padre:hover > .menu_hijo{
	display: block;
}

.contenedor_info{
	width: 100%;
	padding-top: 2px;
	padding-bottom: 2px;
}

.contenedor_info > .div24{
	padding-left: 2px;
}

.contenedor_info > .div74{
	max-height: 360px;
	overflow-y: auto;
}

.item_numeracion_des{
	display: inline-block;
	width: 16px;
	height: 16px;
	cursor: pointer;
	padding: 3px;
	border: 1px dotted #cccccc;
	text-align: center;
}
.item_numeracion_des:hover{
	background-color: #cccccc;
	border: 1px solid #666666;
}
.item_numeracion{
	display: inline-block;
	width: 16px;
	height: 16px;
	cursor: pointer;
	padding: 3px;
	border: 1px dotted #ff0000;
	color: #ff0000;
	text-align: center;
}
.item_numeracion:hover{
	background-color: #cccccc;
	border: 1px solid #c96508;
}
.h28{
	height: 28px;
}
.img_mensaje_no_elementos{
	width: 90%;
}
.area_trabajo{
	width: 96%;
	margin: 2%;
	overflow: auto;
	text-align: left;
}

.borde_celda{
	padding-top: 8px;
	border-top: 1px dotted #bbb;
}

.div_warning{
	border: 1px solid #074094;
	background-color: #a0c2f5;
	width: 95%;
	padding: 2%;
}

.label_error_sys{
	background-color: #fff;
	color: rgb(21, 0, 255);
	display: inline-block;
	border-radius: 15px;
	box-shadow: 3px 3px 3px 2px rgba(0,0,0,0.36);
	padding: 1.5px;
	margin: 1px;
	border: 1px solid rgb(21, 0, 255);
}

.label_ok{
	width: 96%;
	padding: 2%;
	background-color: #46F942;
	color: #000;
	text-align: center;
	font-weight: bold;
}

.label_error{
	width: 96%;
	padding: 2%;
	background-color: #f94242;
	color: #fff;
	text-align: center;
	font-weight: bold;
}

.pestana_inactiva{
	display: inline-block;
	padding: 4px;
	border: 1px solid #eee;
	border-bottom: 1px solid #3b5072;
	background-color: #eee;
	margin: 0px;
	cursor: pointer;
}

.pestana_inactiva:hover{
	background-color: #ddd;
}

.pestana_activa{
	display: inline-block;
	padding: 4px;
	border: 1px solid #1f2a3d;
	background-color: #2b3b55;
	color: #fff;
	cursor: pointer;
	margin: 0px;
}

.pestana_activa:hover{
	background-color: #222d3f;
}

.verticaltop{
	 vertical-align: top;
}
.vinculo{
	color: #0A5FDE;
	cursor: pointer;
}
.vinculo:hover{
	color: #00f;
	text-decoration: underline;
}

.h22{
	height: 18px;
}

.capa_estado{
	margin: 0;
	padding: 3px 10px;
	border: 1px solid transparent;
	display: inline-block;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0.01em;
	white-space: nowrap;
}
.capa_estado.verde{
	background-color: #dcfce7;
	color: #166534;
	border-color: #bbf7d0;
}
.capa_estado.azul{
	background-color: #e0f2fe;
	color: #0369a1;
	border-color: #bae6fd;
}
.capa_estado.naranja{
	background-color: #ffedd5;
	color: #c2410c;
	border-color: #fed7aa;
}
.capa_estado.rojo{
	background-color: #fee2e2;
	color: #991b1b;
	border-color: #fecaca;
}
.capa_estado.gris{
	background-color: #f1f5f9;
	color: #475569;
	border-color: #e2e8f0;
}
.verde{
	background-color: #dcfce7;
	color: #166534;
}
.azul{
	background-color: #e0f2fe;
	color: #0369a1;
}
.naranja{
	background-color: #ffedd5;
	color: #c2410c;
}
.rojo{
	background-color: #fee2e2;
	color: #991b1b;
}
.tabla .ft_acciones,
.tabla td.td_acciones{
	white-space: nowrap;
	text-align: center;
	width: 1%;
	vertical-align: middle;
}
.tabla .ft_accion,
img.ft_accion{
	width: 20px !important;
	height: 20px !important;
	max-width: 20px;
	max-height: 20px;
	object-fit: contain;
	cursor: pointer;
	opacity: 0.82;
	margin: 0 3px;
	padding: 3px;
	border-radius: 6px;
	box-sizing: content-box;
	vertical-align: middle;
	background: transparent;
	border: 0;
	transition: opacity .12s ease, background-color .12s ease;
}
.tabla .ft_accion:hover,
img.ft_accion:hover{
	opacity: 1;
	background: #e2e8f0;
}
.tabla img.boton.h22,
.tabla .boton.h22{
	width: 20px !important;
	height: 20px !important;
	padding: 3px;
	margin: 0 3px;
	border: 0;
	border-radius: 6px;
	background: transparent;
	box-shadow: none;
	opacity: 0.82;
	object-fit: contain;
	vertical-align: middle;
}
.tabla img.boton.h22:hover,
.tabla .boton.h22:hover{
	opacity: 1;
	background: #e2e8f0;
}
.ficha_chip{
	display:inline-block;
	border:1px solid #94a3b8;
	border-radius:999px;
	padding:3px 10px;
	font-size:12px;
	font-weight:600;
	line-height:1.3;
	background:#fff;
	white-space:nowrap;
}

.processBar{
	color: #000;
	background: -webkit-linear-gradient(top, #1aff00, #1aff00, #1aff00, #1aff00, #1aff00, #1aff00);
	border-radius: 5px;
	border: 1px solid #000;
	height: 14px;
	white-space: nowrap;
	margin-bottom: 3px;
}

.label_resultado{
	width: 95.5%;
	border: 1px solid #074094;
	padding: 2%;
	cursor: pointer;
}

.label_resultado:hover{
	background-color: #a2bee8;
}

.label_warning{
	width: 96%;
	padding: 2%;
	background-color: rgb(245, 237, 1);
	color: #000;
	text-align: center;
}

.text_sub{
	font: 0.8em helvetica;
}

.layer_adjunto{
	width: 80px;
	height: 78px;
	border: 1px dotted #0b165b;
	background-color: #bebbff;
	cursor: pointer;
	display: inline-block;
	text-align: center;
	vertical-align: top;
	border-radius: 10px;
}

.layer_adjunto:hover{
	background-color: #8575ff;
	color: #fff;
}

.layer_adjunto img{
	max-width: 100%;
}

.label_estadistica_basica{
	width: 20%;
	margin: 1%;
	padding: 1%;
	padding-top: 40px;
	padding-bottom: 40px;
	text-align: center;
	border-radius: 7px;
	cursor: pointer;
	font: 2em helvetica;
	display: inline-block;
	-webkit-box-shadow: 1px 1px 1px 0.5px rgba(0,0,0,0.36);
	-moz-box-shadow: 1px 1px 1px 0.5px rgba(0,0,0,0.36);
	box-shadow: 1px 1px 1px 0.5px rgba(0,0,0,0.36);
}

.l_azul_intenso{
	background-color: #00f;
	color: #fff;
	border: 1px solid #0b165b;
}

.l_verde_intenso{
	background-color: rgb(77, 255, 0);
	color: #000;
	border: 1px solid #0b5b0b;
}

.l_rojo_intenso{
	background-color: rgb(255, 17, 0);
	color: #fff;
	border: 1px solid #5b0b0b;
}

.l_morado_intenso{
	background-color: rgb(255, 0, 238);
	color: #fff;
	border: 1px solid #5a0b5b;
}

.divpadre_cliente{
	position: relative;
	z-Index: 49 !important;
}

.divhijo_cliente{
	position: absolute;
	display: none;
	width: 100%;
	background-color: #dddddd;
	border: 1px solid #555555;
	cursor:pointer;
	transform: translate(0px, 25px);
	z-Index: 51 !important;
	overflow: auto;
}

.divhijo_cliente img{
	height: 18px;
	width: 18px;
}

.divpadre_cliente:hover > .divhijo_cliente{
	display: block;
}

.label_disponible{
	color:rgb(54, 75, 45)
}

.ficha_especial{
	background-color: #ffffff;
	border-radius: 10px;
	border: 2px solid #ccc;
	margin: 1%;
	padding: 1%;
	box-shadow: 5px 5px 5px 2px rgba(0,0,0,0.36);
}

.lineaComentarios{
	.timeline {
		margin: auto;
		position: relative;
	}

	.timeline::before {
		content: '';
		position: absolute;
		left: -15px;
		top: 0;
		bottom: 0;
		width: 2px;
		background: #cbd5e1;
	}

	.timeline-item {
		position: relative;
		margin-bottom: 25px;
	}

	.timeline-item::before {
		content: '';
		position: absolute;
		left: -22px;
		top: 5px;
		width: 14px;
		height: 14px;
		background: #2563eb;
		border-radius: 50%;
	}

	.timeline-date {
		font-size: 0.85em;
		color: #64748b;
		margin-bottom: 5px;
	}

	.timeline-content {
		background: #f4f6f8;
		padding: 15px;
		border-radius: 6px;
		box-shadow: 5px 5px 5px 2px rgba(0,0,0,0.36);
	}

	.timeline-content p {
		margin-top: 8px;
		margin-bottom: 0;
		line-height: 1.4;
	}
}

/* Asistente / wizard Formula Talleres */
.wizard_header{
	display:flex;
	justify-content:space-between;
	align-items:center;
	margin-bottom:10px;
	padding-bottom:8px;
	border-bottom:1px solid #e2e8f0;
}
.wizard_titulo{
	font-weight:bold;
	color:#1E293B;
	font-size:1.05em;
}
.wizard_progreso{
	font-size:13px;
	color:#64748b;
}
.wizard_pasos_indicador{
	display:flex;
	gap:6px;
	flex-wrap:wrap;
	margin-bottom:14px;
}
.wizard_pasos_indicador span{
	width:28px;
	height:28px;
	border-radius:50%;
	background:#e2e8f0;
	color:#475569;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	font-size:12px;
	font-weight:bold;
}
.wizard_pasos_indicador span.activo{
	background:#1E293B;
	color:#fff;
}
.wizard_pasos_indicador span.hecho{
	background:#22c55e;
	color:#fff;
}
.wizard_cuerpo{
	max-height:420px;
	overflow:auto;
	padding-right:4px;
}
.wizard_hint{
	color:#64748b;
	font-size:13px;
}
.wizard_grid{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:10px 14px;
}
.wizard_grid label,
.wizard_full{
	display:block;
	font-size:13px;
	color:#334155;
}
.wizard_full{
	grid-column:1 / -1;
}
.wizard_grid .formulario,
.paso_asistente .formulario{
	width:96%;
	margin-top:4px;
}
.wizard_checks{
	display:flex;
	flex-wrap:wrap;
	gap:8px 14px;
}
.wizard_check{
	display:inline-flex;
	align-items:center;
	gap:6px;
	background:#f8fafc;
	border:1px solid #e2e8f0;
	border-radius:6px;
	padding:6px 10px;
	font-size:13px;
}
.wizard_chips{
	display:flex;
	flex-wrap:wrap;
	gap:6px;
}
.wizard_chip{
	border:1px solid #94a3b8;
	border-radius:999px;
	padding:4px 10px;
	font-size:12px;
	background:#fff;
}
.wizard_seccion_titulo{
	font-weight:bold;
	color:#1E293B;
	margin-bottom:8px;
	font-size:13px;
}
.wizard_lista{
	border:1px solid #e2e8f0;
	border-radius:8px;
	overflow:hidden;
}
.wizard_lista_item{
	padding:10px 12px;
	border-bottom:1px solid #e2e8f0;
	font-size:13px;
}
.wizard_lista_item:last-child{
	border-bottom:none;
}
.wizard_msg{
	margin-top:10px;
}
.wizard_footer{
	border-top:1px solid #e2e8f0;
	padding-top:12px;
	margin-top:12px;
}
.wizard_check_row{
	padding:8px 10px;
	margin-bottom:6px;
	border-radius:6px;
	font-size:13px;
	display:flex;
	gap:8px;
	align-items:center;
}
.wizard_check_ok{
	background:#dcfce7;
	color:#166534;
}
.wizard_check_bad{
	background:#fee2e2;
	color:#991b1b;
}
@media (max-width: 720px){
	.wizard_grid{
		grid-template-columns:1fr;
	}
	.wizard_cuerpo{
		max-height:320px;
	}
}

/* Ficha cliente / hoja de vida */
.ficha_form_wrap{
	padding:4px 2px 8px;
}
.ficha_cliente_root{
	font-size:14px;
}
.ficha_hero{
	display:flex;
	justify-content:space-between;
	gap:12px;
	align-items:flex-start;
	padding-bottom:12px;
	border-bottom:1px solid #e2e8f0;
	margin-bottom:12px;
}
.ficha_hero_main{
	display:flex;
	gap:12px;
	align-items:center;
}
.ficha_avatar{
	width:56px;
	height:56px;
	border-radius:14px;
	background:#1E293B;
	color:#fff;
	display:flex;
	align-items:center;
	justify-content:center;
	font-size:1.4em;
	font-weight:bold;
	flex-shrink:0;
}
.ficha_titulo{
	font-size:1.25em;
	font-weight:bold;
	color:#0f172a;
}
.ficha_meta{
	color:#64748b;
	font-size:13px;
	margin-top:2px;
}
.ficha_badges{
	margin-top:6px;
	display:flex;
	flex-wrap:wrap;
	gap:6px;
}
.ficha_badge{
	display:inline-block;
	background:#f1f5f9;
	color:#334155;
	border-radius:999px;
	padding:2px 10px;
	font-size:12px;
}
.ficha_badge.ok{
	background:#dcfce7;
	color:#166534;
}
.ficha_badge.off{
	background:#fee2e2;
	color:#991b1b;
}
.ficha_stats{
	display:grid;
	grid-template-columns:repeat(4, 1fr);
	gap:8px;
	margin-bottom:12px;
}
.ficha_stat{
	background:#f8fafc;
	border:1px solid #e2e8f0;
	border-radius:10px;
	padding:10px 8px;
	text-align:center;
	cursor:pointer;
}
.ficha_stat:hover{
	background:#eef2ff;
}
.ficha_stat strong{
	display:block;
	font-size:1.3em;
	color:#1E293B;
}
.ficha_stat span{
	font-size:12px;
	color:#64748b;
}
.ficha_tabs{
	display:flex;
	flex-wrap:wrap;
	gap:4px;
	border-bottom:1px solid #e2e8f0;
	margin-bottom:12px;
}
.ficha_tab{
	border:none;
	background:transparent;
	padding:8px 12px;
	cursor:pointer;
	color:#64748b;
	border-bottom:2px solid transparent;
	font:inherit;
}
.ficha_tab.activo{
	color:#1E293B;
	font-weight:bold;
	border-bottom-color:#1E293B;
}
.ficha_panel{
	max-height:380px;
	overflow:auto;
}
.ficha_dos_cols{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:16px;
}
.ficha_bloque_titulo{
	font-weight:bold;
	color:#1E293B;
	margin-bottom:8px;
}
.ficha_texto{
	background:#f8fafc;
	border:1px solid #e2e8f0;
	border-radius:8px;
	padding:10px 12px;
	min-height:60px;
	line-height:1.4;
}
.ficha_timeline{
	display:flex;
	flex-direction:column;
	gap:10px;
}
.ficha_tl_item{
	border-left:3px solid #1E293B;
	padding:8px 12px;
	background:#f8fafc;
	border-radius:0 8px 8px 0;
}
.ficha_tl_item.muted{
	border-left-color:#94a3b8;
}
.ficha_tl_fecha{
	font-size:12px;
	color:#64748b;
	margin-bottom:4px;
}
.ficha_tl_body{
	line-height:1.4;
}
@media (max-width: 720px){
	.ficha_stats{
		grid-template-columns:repeat(2, 1fr);
	}
	.ficha_dos_cols{
		grid-template-columns:1fr;
	}
	.ficha_hero{
		flex-direction:column;
	}
}

/* Dashboard taller */
.dash_root{
	padding:8px 4px 20px;
}
.dash_top{
	display:flex;
	justify-content:space-between;
	align-items:flex-start;
	gap:12px;
	flex-wrap:wrap;
	margin-bottom:14px;
}
.dash_top h2{
	margin:0 0 4px;
	color:#1E293B;
}
.dash_kpis{
	display:grid;
	grid-template-columns:repeat(4, 1fr);
	gap:10px;
	margin-bottom:14px;
}
.dash_kpi{
	background:#f8fafc;
	border:1px solid #e2e8f0;
	border-radius:12px;
	padding:12px 12px 10px;
	cursor:pointer;
	min-height:88px;
}
.dash_kpi:hover{
	background:#f1f5f9;
	border-color:#cbd5e1;
}
.dash_kpi strong{
	display:block;
	font-size:1.45em;
	color:#1E293B;
	line-height:1.1;
}
.dash_kpi span{
	display:block;
	font-size:13px;
	color:#475569;
	margin-top:4px;
}
.dash_kpi em{
	display:block;
	font-style:normal;
	font-size:12px;
	color:#94a3b8;
	margin-top:6px;
}
.dash_kpi.accent{
	border-color:#86efac;
	background:#f0fdf4;
}
.dash_kpi.warn{
	border-color:#fdba74;
	background:#fff7ed;
}
.dash_kpi.money strong{
	color:#0f766e;
}
.dash_grid{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:12px;
	margin-bottom:16px;
}
.dash_panel{
	background:#fff;
	border:1px solid #e2e8f0;
	border-radius:12px;
	padding:12px;
	min-height:180px;
}
.dash_pipeline{
	display:flex;
	flex-direction:column;
	gap:8px;
}
.dash_pipe_row{
	display:grid;
	grid-template-columns:120px 1fr 36px;
	gap:8px;
	align-items:center;
}
.dash_pipe_label{
	font-size:12px;
	color:#475569;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}
.dash_pipe_track{
	height:10px;
	background:#e2e8f0;
	border-radius:999px;
	overflow:hidden;
}
.dash_pipe_bar{
	height:100%;
	border-radius:999px;
	min-width:0;
}
.dash_pipe_val{
	text-align:right;
	font-weight:bold;
	color:#1E293B;
	font-size:13px;
}
.dash_alerts{
	display:flex;
	flex-direction:column;
	gap:6px;
	max-height:340px;
	overflow:auto;
}
.dash_alert{
	display:flex;
	gap:8px;
	align-items:flex-start;
	padding:8px;
	border-radius:8px;
	border:1px solid #e2e8f0;
	cursor:pointer;
	background:#f8fafc;
}
.dash_alert:hover{
	background:#eef2ff;
}
.dash_alert.danger{
	border-color:#fecaca;
	background:#fef2f2;
}
.dash_alert_dot{
	width:10px;
	height:10px;
	border-radius:50%;
	margin-top:5px;
	flex:0 0 auto;
}
.dash_alert_body{
	font-size:13px;
	color:#334155;
	line-height:1.35;
}
.dash_alert_meta{
	font-size:12px;
	color:#64748b;
	margin-top:2px;
}
.dash_shortcuts{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	justify-content:flex-start;
}
.dash_shortcuts .item_home{
	width:110px;
}
@media (max-width: 980px){
	.dash_kpis{
		grid-template-columns:repeat(2, 1fr);
	}
	.dash_grid{
		grid-template-columns:1fr;
	}
	.dash_pipe_row{
		grid-template-columns:100px 1fr 32px;
	}
}
@media (max-width: 560px){
	.dash_kpis{
		grid-template-columns:1fr 1fr;
	}
}

/* Reportes taller */
.rep_root{
	padding:6px 2px 18px;
}
.rep_head{
	display:flex;
	justify-content:space-between;
	align-items:flex-start;
	gap:16px;
	flex-wrap:wrap;
	margin-bottom:18px;
	padding-bottom:14px;
	border-bottom:1px solid #e2e8f0;
}
.rep_head h2{
	margin:0 0 4px;
	color:#0f172a;
}
.rep_head_view{
	align-items:flex-end;
}
.rep_period_box{
	background:#f8fafc;
	border:1px solid #e2e8f0;
	border-radius:12px;
	padding:12px 14px;
	min-width:280px;
}
.rep_period_label{
	font-size:12px;
	color:#64748b;
	margin-bottom:6px;
	text-transform:uppercase;
	letter-spacing:.04em;
}
.rep_period_row{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	align-items:center;
	margin-bottom:6px;
}
.rep_period_row .formulario{
	width:auto;
	min-width:120px;
}
.rep_actions{
	display:flex;
	flex-direction:column;
	align-items:flex-end;
	gap:8px;
}
.rep_section{
	margin-bottom:22px;
}
.rep_section_head{
	display:flex;
	flex-direction:column;
	gap:2px;
	margin-bottom:10px;
}
.rep_section_head strong{
	font-size:15px;
	color:#0f172a;
}
.rep_section_head span{
	color:#64748b;
	font-size:13px;
}
.rep_grid{
	display:grid;
	grid-template-columns:repeat(3, minmax(0, 1fr));
	gap:12px;
}
.rep_card{
	display:flex;
	gap:12px;
	align-items:flex-start;
	background:#fff;
	border:1px solid #e2e8f0;
	border-radius:14px;
	padding:14px;
	cursor:pointer;
	transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease;
	min-height:110px;
}
.rep_card:hover{
	border-color:#94a3b8;
	box-shadow:0 8px 24px rgba(15,23,42,.06);
	transform:translateY(-1px);
}
.rep_card_icon{
	width:42px;
	height:42px;
	border-radius:10px;
	background:#f1f5f9;
	display:flex;
	align-items:center;
	justify-content:center;
	flex-shrink:0;
}
.rep_card_icon img{
	width:24px;
	height:24px;
	object-fit:contain;
}
.rep_card_body{
	flex:1;
	min-width:0;
}
.rep_card_body strong{
	display:block;
	color:#0f172a;
	margin-bottom:4px;
}
.rep_card_body p{
	margin:0 0 6px;
	color:#475569;
	font-size:12.5px;
	line-height:1.35;
}
.rep_card_body em{
	font-style:normal;
	font-size:11px;
	color:#94a3b8;
	text-transform:uppercase;
	letter-spacing:.03em;
}
.rep_card_go{
	color:#64748b;
	font-size:12px;
	align-self:center;
	white-space:nowrap;
}
.rep_kpis{
	display:grid;
	grid-template-columns:repeat(5, minmax(0, 1fr));
	gap:10px;
	margin-bottom:14px;
}
.rep_kpi{
	background:linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
	border:1px solid #e2e8f0;
	border-radius:12px;
	padding:12px;
}
.rep_kpi strong{
	display:block;
	font-size:20px;
	color:#0f172a;
	margin-bottom:2px;
}
.rep_kpi span{
	color:#64748b;
	font-size:12px;
}
.rep_kpi.money strong{
	color:#0f766e;
}
.rep_kpi.warn{
	border-color:#fdba74;
	background:linear-gradient(180deg, #fff7ed 0%, #ffedd5 100%);
}
.rep_kpi.warn strong{
	color:#c2410c;
}
.rep_note{
	background:#f8fafc;
	border-left:3px solid #94a3b8;
	padding:8px 12px;
	margin:0 0 12px;
	color:#475569;
	font-size:13px;
}
.rep_table_wrap{
	overflow:auto;
	border:1px solid #e2e8f0;
	border-radius:12px;
}
.rep_table{
	margin:0;
}
.rep_total_row td{
	background:#f8fafc;
	border-top:2px solid #cbd5e1;
}
@media (max-width: 980px){
	.rep_grid{
		grid-template-columns:1fr 1fr;
	}
	.rep_kpis{
		grid-template-columns:1fr 1fr 1fr;
	}
}
@media (max-width: 640px){
	.rep_grid,
	.rep_kpis{
		grid-template-columns:1fr;
	}
}

.rep_charts{
	display:grid;
	grid-template-columns:repeat(2, minmax(0, 1fr));
	gap:12px;
	margin:0 0 16px;
}
.rep_chart_card{
	background:#fff;
	border:1px solid #e2e8f0;
	border-radius:14px;
	padding:14px;
}
.rep_chart_title{
	font-size:13px;
	font-weight:600;
	color:#0f172a;
	margin-bottom:10px;
}
.rep_chart_empty{
	color:#94a3b8;
	font-size:12px;
	padding:18px 0;
	text-align:center;
}
.rep_bars{
	display:flex;
	flex-direction:column;
	gap:8px;
}
.rep_bar_row{
	display:grid;
	grid-template-columns:110px 1fr 64px;
	gap:8px;
	align-items:center;
}
.rep_bar_label{
	font-size:12px;
	color:#475569;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
}
.rep_bar_track{
	height:10px;
	background:#e2e8f0;
	border-radius:999px;
	overflow:hidden;
}
.rep_bar_fill{
	height:100%;
	border-radius:999px;
	min-width:4px;
}
.rep_bar_val{
	font-size:12px;
	color:#0f172a;
	text-align:right;
	font-weight:600;
}
.rep_chart_donut_wrap{
	display:flex;
	gap:14px;
	align-items:center;
	flex-wrap:wrap;
}
.rep_donut{
	flex-shrink:0;
}
.rep_chart_legend{
	font-size:12px;
	color:#475569;
	display:flex;
	flex-direction:column;
	gap:4px;
}
.rep_leg_dot{
	display:inline-block;
	width:8px;
	height:8px;
	border-radius:50%;
	margin-right:6px;
}
.rep_prog_form{
	background:#f8fafc;
	border:1px solid #e2e8f0;
	border-radius:14px;
	padding:14px;
}
@media (max-width: 860px){
	.rep_charts{
		grid-template-columns:1fr;
	}
	.rep_bar_row{
		grid-template-columns:90px 1fr 56px;
	}
}

/* ========== Menú lateral colapsable ========== */
.ft_menu_toggle{
	display:none;
	position:fixed;
	top:6px;
	left:8px;
	z-index:1100;
	width:40px;
	height:40px;
	border:1px solid #e2e8f0;
	border-radius:10px;
	background:#ffffff;
	padding:10px 9px;
	cursor:pointer;
	flex-direction:column;
	justify-content:center;
	align-items:stretch;
	gap:5px;
	box-shadow:0 4px 14px rgba(15, 23, 42, 0.14);
	-webkit-tap-highlight-color: transparent;
}
.ft_menu_toggle span{
	display:block;
	height:2px;
	width:100%;
	background:#1e293b;
	border-radius:2px;
	transition:transform .2s ease, opacity .2s ease, background-color .2s ease;
	transform-origin:center;
}
body.ft_menu_abierto .ft_menu_toggle{
	background:#0f172a;
	border-color:#0f172a;
}
body.ft_menu_abierto .ft_menu_toggle span{
	background:#ffffff;
}
body.ft_menu_abierto .ft_menu_toggle span:nth-child(1){
	transform:translateY(7px) rotate(45deg);
}
body.ft_menu_abierto .ft_menu_toggle span:nth-child(2){
	opacity:0;
}
body.ft_menu_abierto .ft_menu_toggle span:nth-child(3){
	transform:translateY(-7px) rotate(-45deg);
}
.ft_menu_lateral{
	position:fixed;
	top:0;
	left:0;
	bottom:0;
	width:var(--ft-menu-w);
	background:linear-gradient(180deg, #0f172a 0%, #1e293b 100%);
	color:#e2e8f0;
	z-index:1060;
	display:none;
	flex-direction:column;
	overflow:hidden;
	transition:width .2s ease, transform .2s ease;
	border-right:1px solid #0b1220;
}
body.ft_con_menu .ft_menu_lateral{
	display:flex;
}
.ft_menu_brand{
	display:flex;
	align-items:center;
	gap:10px;
	padding:14px 14px 12px;
	border-bottom:1px solid rgba(255,255,255,.08);
	min-height:52px;
}
.ft_menu_brand img{
	width:28px;
	height:28px;
	object-fit:contain;
	flex-shrink:0;
}
.ft_menu_brand_txt{
	font-size:13px;
	font-weight:700;
	letter-spacing:.01em;
	white-space:nowrap;
	overflow:hidden;
}
.ft_menu_nav{
	flex:1;
	overflow-y:auto;
	padding:8px 8px 12px;
	-webkit-overflow-scrolling:touch;
}
.ft_menu_item{
	width:100%;
	display:flex;
	align-items:center;
	gap:10px;
	border:0;
	background:transparent;
	color:#e2e8f0;
	text-align:left;
	padding:10px 10px;
	border-radius:10px;
	cursor:pointer;
	font:inherit;
	font-size:13px;
	margin-bottom:2px;
}
.ft_menu_item:hover,
.ft_menu_item:focus{
	background:rgba(255,255,255,.08);
	outline:none;
}
.ft_menu_item img{
	width:20px;
	height:20px;
	object-fit:contain;
	flex-shrink:0;
	opacity:.92;
}
.ft_menu_item img[src$=".png"]{
	filter:brightness(0) invert(1);
}
.ft_menu_item .ft_ico,
.ft_menu_item svg.ft_ico{
	width:20px;
	height:20px;
	flex-shrink:0;
	color:#e2e8f0;
	opacity:.95;
	display:block;
}
.ft_menu_brand .ft_ico,
.ft_menu_brand svg.ft_ico{
	width:22px;
	height:22px;
	color:#ffffff;
	flex-shrink:0;
}
.ft_menu_item span{
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}
.ft_menu_collapse{
	display:flex;
	align-items:center;
	gap:8px;
	border:0;
	border-top:1px solid rgba(255,255,255,.08);
	background:transparent;
	color:#94a3b8;
	padding:12px 14px;
	cursor:pointer;
	font:inherit;
	font-size:12px;
}
.ft_menu_collapse:hover{color:#fff;}
.ft_menu_collapse_icon{display:inline-block;transition:transform .2s ease;}
body.ft_menu_colapsado .ft_menu_brand_txt,
body.ft_menu_colapsado .ft_menu_item span,
body.ft_menu_colapsado .ft_menu_collapse_txt{
	display:none;
}
body.ft_menu_colapsado .ft_menu_item{
	justify-content:center;
	padding:12px 8px;
}
body.ft_menu_colapsado .ft_menu_collapse{
	justify-content:center;
}
body.ft_menu_colapsado .ft_menu_collapse_icon{
	transform:rotate(180deg);
}
.ft_menu_backdrop{
	display:none;
	position:fixed;
	inset:0;
	background:rgba(15,23,42,.45);
	z-index:1050;
}
body.ft_sin_menu .ft_menu_lateral,
body.ft_sin_menu .ft_menu_toggle,
body.ft_sin_menu .ft_menu_backdrop,
body.ft_sin_menu .ft_menu_collapse{
	display:none !important;
}
.boton_usuario{
	z-index:110;
}

/* ===== LATAM UX: plazos, badges, vacíos, foco accesible ===== */
.pi_skip:focus{
	left: 8px !important;
	top: 8px !important;
	z-index: 2000;
	background: #0f766e;
	color: #fff;
	padding: 8px 12px;
	border-radius: 8px;
}
:focus-visible{
	outline: 2px solid #0f766e !important;
	outline-offset: 2px !important;
}
.pi_urg{
	display:inline-block;
	font-size:12px;
	font-weight:600;
	border-radius:999px;
	padding:3px 8px;
	line-height:1.3;
	white-space:nowrap;
}
.pi_urg_hot{ background:#fef2f2; color:#b91c1c; }
.pi_urg_soon{ background:#fff7ed; color:#c2410c; }
.pi_urg_ok{ background:#f0fdf4; color:#15803d; }
.pi_urg_off{ background:#f1f5f9; color:#64748b; }
.pi_urg_na{ background:#f8fafc; color:#94a3b8; }
.pi_badge{
	display:inline-block;
	font-size:11px;
	background:#eef2ff;
	color:#3730a3;
	border-radius:6px;
	padding:2px 7px;
	margin-right:4px;
}
.pi_tr_urgente td:first-child{ box-shadow: inset 3px 0 0 #dc2626; }
.pi_chips{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	margin:8px 0 12px;
}
.pi_chip{
	border:1px solid #cbd5e1;
	background:#fff;
	border-radius:999px;
	padding:7px 14px;
	font-size:13px;
	cursor:pointer;
	color:#334155;
}
.pi_chip:hover{ border-color:#0f766e; color:#0f766e; }
.pi_chip.on{
	background:#0f766e;
	border-color:#0f766e;
	color:#fff;
}
.pi_filtros_extra{ display:none; }
.pi_filtros_extra.abierto{ display:block; }
.pi_vacio{
	text-align:center;
	padding:28px 16px;
	border:1px dashed #cbd5e1;
	border-radius:12px;
	background:#f8fafc;
	color:#475569;
}
.pi_vacio strong{ display:block; font-size:16px; color:#1e293b; margin-bottom:6px; }
.pi_vacio p{ margin:0 0 12px; font-size:14px; }
.pi_cta_bar{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	align-items:center;
	margin:8px 0 12px;
}
.pi_trust{
	display:flex;
	flex-wrap:wrap;
	gap:10px 18px;
	font-size:12px;
	color:#64748b;
	margin-top:10px;
}
.pi_banner_cierre{
	border-radius:10px;
	padding:10px 14px;
	margin:0 0 14px;
	font-size:14px;
}
.pi_banner_cierre.hot{ background:#fef2f2; border:1px solid #fecaca; color:#991b1b; }
.pi_banner_cierre.soon{ background:#fff7ed; border:1px solid #fed7aa; color:#9a3412; }
.pi_share a, .pi_share button, .pi_share .boton{
	margin-right:6px;
}
.tabla.pi_tabla_latam .tr_head td:nth-child(5),
.tabla.pi_tabla_latam .tr_content td:nth-child(5){
	white-space:nowrap;
}
.pi_td_acciones{
	white-space:nowrap;
	width:1%;
	vertical-align:middle;
}
.pi_td_acciones .boton{
	padding:6px 12px;
	font-size:13px;
}
.pi_tr_detalle{
	display:none;
}
.pi_tr_detalle.abierto{
	display:table-row;
}
.pi_tr_detalle.abierto td{
	background:#f8fafc;
	border-top:0;
	padding:0 10px 12px;
}
.pi_detalle_box{
	background:#f8fafc;
	border:1px solid #e2e8f0;
	border-radius:10px;
	padding:12px 14px;
	text-align:left;
	margin:4px 0 2px;
}
.pi_detalle_grid{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:6px 18px;
	margin-bottom:10px;
}
.pi_detalle_grid p{
	margin:0;
	font-size:13px;
	color:#334155;
	line-height:1.4;
}
.pi_detalle_objeto{
	font-size:13px;
	color:#334155;
	line-height:1.5;
	margin:6px 0 12px;
	white-space:pre-wrap;
}
.pi_origen{
	display:inline-block;
	font-size:10px;
	font-weight:700;
	letter-spacing:.04em;
	border-radius:4px;
	padding:2px 6px;
	margin-left:4px;
	vertical-align:middle;
}
.pi_origen_secop{ background:#ecfeff; color:#0e7490; }
.pi_origen_calculado{ background:#f5f3ff; color:#6d28d9; }
.pi_origen_inferido{ background:#fff7ed; color:#c2410c; }
.pi_origen_ia{ background:#f1f5f9; color:#334155; }
