.ancho100, div.ancho100 {
	width: 100%;
}

.centrado, div.centrado {
	text-align: center;
	vertical-align: middle;
}

div.input-numero, span.input-numero, div.input-numero input, span.input-numero input,
	input.input-numero, .input-numero input {
	max-width: 85%;
}

td.padding_compacto, th.padding_compacto, div.padding_compacto,
	.padding_compacto td, .padding_compacto th, .padding_compacto div {
	padding: 1px !important;
}

.max-width-25, div.max-width-25, td.max-width-25 {
	max-width: 25px;
}

td.fila_archivos, th.fila_archivos, tr.fila_archivos, div.fila_archivos
	{
	min-height: 250px;
	height: auto;
	vertical-align: top;
	border-radius: 12px !important;
	border: 2px dashed #cbd5e1 !important;
	background-color: #f8fafc !important;
	padding: 10px !important;
	transition: all 0.25s ease-in-out;
}

td.fila_archivos:hover, div.fila_archivos:hover {
	border-color: #863bff !important;
	background-color: #faf7ff !important;
}

td.fila_archivos.archivo-cargado, div.fila_archivos.archivo-cargado {
	border-style: solid !important;
	border-color: #10b981 !important;
	background-image: none !important;
	background-color: #ffffff !important;
	box-shadow: 0 4px 12px rgba(16, 185, 129, 0.10) !important;
}

td.celda_archivos, th.celda_archivos, tr.celda_archivos, div.celda_archivos,
	img.celda_archivos, iframe.celda_archivos, embed.celda_archivos, video.celda_archivos, .celda_archivos td, .celda_archivos th,
	.celda_archivos div {
	max-height: 200px;
	height: auto;
	max-width: 100%;
	width: auto;
	border-radius: 8px;
}

table.no-padding td, td.no-padding, th.no-padding, div.no-padding div,
	.no-padding {
	padding: 0 !important;
}

.ui-growl .ui-growl-item-container.ui-growl-undefined .ui-growl-image,
	body .ui-growl .ui-growl-item-container.ui-growl-fatal .ui-growl-image
	{
	font-family: "primeicons" !important;
	font-style: normal;
	font-weight: normal;
	display: inline-block;
	background: none;
	font-size: 2rem;
	color: #212121
}

.ui-growl-undefined {
	background: #f8b7bd;
	border: 1px solid transparent;
	color: #212121;
	border-width: 0 0 0 6px;
}

/* =====================================================================
   EXPERIENCIA SENIOR UI/UX: ALTA LEGIBILIDAD (70+ ANOS) & GRID FLUIDO
   ===================================================================== */
#panelDatosSolicitud .ui-grid-row {
	display: flex !important;
	flex-wrap: wrap !important;
	width: 100% !important;
	gap: 10px !important;
	margin-bottom: 6px !important;
}

#panelDatosSolicitud .ui-grid-row > .ui-grid-col-3 {
	flex: 1 1 calc(25% - 8px) !important;
	max-width: calc(25% - 8px) !important;
	width: calc(25% - 8px) !important;
	box-sizing: border-box !important;
}

#panelDatosSolicitud .ui-grid-row > .ui-grid-col-4 {
	flex: 1 1 calc(33.333% - 7px) !important;
	max-width: calc(33.333% - 7px) !important;
	width: calc(33.333% - 7px) !important;
	box-sizing: border-box !important;
}

#panelDatosSolicitud .ui-grid-row > .ui-grid-col-6 {
	flex: 1 1 calc(50% - 5px) !important;
	max-width: calc(50% - 5px) !important;
	width: calc(50% - 5px) !important;
	box-sizing: border-box !important;
}

#panelDatosSolicitud .ui-grid-row > .ui-grid-col-12 {
	flex: 1 1 100% !important;
	max-width: 100% !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

.borde-grid, div.borde-grid {
	border: 1.5px solid #cbd5e1 !important;
	border-radius: 10px !important;
	background-color: #ffffff !important;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04) !important;
	padding: 10px 12px !important;
	box-sizing: border-box !important;
	transition: all 0.15s ease-in-out !important;
}

.borde-grid:hover, div.borde-grid:hover {
	border-color: #94a3b8 !important;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08) !important;
}

.borde-grid:focus-within, div.borde-grid:focus-within {
	border-color: #863bff !important;
	box-shadow: 0 0 0 3px rgba(134, 59, 255, 0.18) !important;
}

/* Forzar que las tablas internas PrimeFaces dentro del card tomen el 100% */
.borde-grid .ui-panelgrid,
.borde-grid .ui-panelgrid-content,
.borde-grid .ui-panelgrid tr,
.borde-grid .ui-panelgrid td {
	width: 100% !important;
	box-sizing: border-box !important;
	display: block !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
}

/* Labels de alta legibilidad para personas de hasta 70 anos (15.5px, maximo contraste Slate-900) */
.borde-grid .ui-outputlabel {
	font-size: 0.96875rem !important;
	font-weight: 700 !important;
	color: #0f172a !important;
	margin-bottom: 5px !important;
	display: block !important;
	text-align: left !important;
	letter-spacing: -0.01em !important;
}

/* Expansion fluida al 100% de ancho de todos los controles */
.borde-grid input.ui-inputtext,
.borde-grid .ui-inputfield,
.borde-grid .ui-selectonemenu,
.borde-grid .ui-datepicker,
.borde-grid .ui-inputgroup {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
}

/* Controles de texto y selects (16px y 44px de altura ergonomica) */
.borde-grid input.ui-inputtext,
.borde-grid .ui-selectonemenu {
	height: 44px !important;
	line-height: 44px !important;
	font-size: 1rem !important;
	font-weight: 500 !important;
	border-radius: 8px !important;
	border: 1.5px solid #cbd5e1 !important;
	color: #0f172a !important;
	background-color: #f8fafc !important;
	padding: 0 12px !important;
	transition: all 0.15s ease !important;
	box-sizing: border-box !important;
}

.borde-grid input.ui-inputtext:focus,
.borde-grid .ui-selectonemenu.ui-state-focus {
	background-color: #ffffff !important;
	border-color: #863bff !important;
	box-shadow: 0 0 0 3px rgba(134, 59, 255, 0.15) !important;
}

.borde-grid .ui-selectonemenu .ui-selectonemenu-label {
	height: 44px !important;
	line-height: 44px !important;
	font-size: 1rem !important;
	padding-left: 12px !important;
	box-sizing: border-box !important;
	text-align: left !important;
	width: 100% !important;
}

.borde-grid .ui-datepicker input {
	width: calc(100% - 42px) !important;
	height: 44px !important;
	font-size: 1rem !important;
	border-top-right-radius: 0 !important;
	border-bottom-right-radius: 0 !important;
}

.borde-grid .ui-datepicker .ui-datepicker-trigger {
	height: 44px !important;
	width: 42px !important;
	border-top-right-radius: 8px !important;
	border-bottom-right-radius: 8px !important;
	background: #863bff !important;
	border-color: #863bff !important;
}

.borde-grid .ui-inputgroup .ui-inputtext {
	width: calc(100% - 4.5rem) !important;
	height: 44px !important;
	font-size: 1rem !important;
}

.borde-grid .ui-inputgroup .ui-button {
	height: 44px !important;
}

/* Opciones de desplegables con espacio comodo de seleccion */
.ui-selectonemenu-panel .ui-selectonemenu-item {
	font-size: 0.96875rem !important;
	padding: 8px 12px !important;
}

/* Cabeceras semanticas compactas (ahorro vertical) */
.seccion-form-header {
	display: flex;
	align-items: center;
	gap: 8px;
	background: #f1f5f9;
	border-left: 4px solid #863bff;
	border-top: 1px solid #e2e8f0;
	border-right: 1px solid #e2e8f0;
	border-bottom: 1px solid #e2e8f0;
	border-radius: 6px;
	padding: 6px 12px;
	margin: 10px 0 6px 0;
	font-size: 0.96875rem;
	font-weight: 700;
	color: #0f172a;
	letter-spacing: -0.01em;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02);
}

.seccion-form-header i {
	color: #863bff;
	font-size: 1.15rem;
}

@media screen and (max-width: 992px) {
	#panelDatosSolicitud .ui-grid-row > .ui-grid-col-3,
	#panelDatosSolicitud .ui-grid-row > .ui-grid-col-4,
	#panelDatosSolicitud .ui-grid-row > .ui-grid-col-6 {
		flex: 1 1 calc(50% - 5px) !important;
		max-width: calc(50% - 5px) !important;
	}
}

@media screen and (max-width: 640px) {
	#panelDatosSolicitud .ui-grid-row > .ui-grid-col-3,
	#panelDatosSolicitud .ui-grid-row > .ui-grid-col-4,
	#panelDatosSolicitud .ui-grid-row > .ui-grid-col-6 {
		flex: 1 1 100% !important;
		max-width: 100% !important;
	}
	.borde-grid {
		padding: 8px 10px !important;
		margin-bottom: 4px !important;
	}
	.borde-grid input.ui-inputtext,
	.borde-grid .ui-selectonemenu {
		height: 44px !important;
		line-height: 44px !important;
	}
	.seccion-form-header {
		font-size: 0.9rem;
		padding: 6px 10px;
	}
}

.smallfont, div.smallfont, label.smallfont, td.smallfont, th.smallfont, span.smallfont {
	font-size: 0.7em;
}

.compactbutton, div.compactbutton, span.compactbutton, label.compactbutton, button.compactbutton > span {
	font-size: 0.7em;
	padding: 1px !important;
}

.cedula-frente, div.cedula-frente {
	background-image: url('/resources/img/cc_frente.png') !important; 
	background-repeat: no-repeat !important;
	background-size: auto 65% !important;
	background-position: center !important;
}
.cedula-reverso, div.cedula-reverso {
	background-image: url('/resources/img/cc_reverso.png') !important; 
	background-repeat: no-repeat !important;
	background-size: auto 65% !important;
	background-position: center !important;
}
.selfie, div.selfie {
	background-image: url('/resources/img/selfie_cedula.png') !important; 
	background-repeat: no-repeat !important;
	background-size: auto 65% !important;
	background-position: center !important;
}

.recibo, div.recibo {
	background-image: url('/resources/img/recibo.png') !important; 
	background-repeat: no-repeat !important;
	background-size: auto 65% !important;
	background-position: center !important;
}

.ruc, div.ruc {
	background-image: url('/resources/img/ruc.png') !important; 
	background-repeat: no-repeat !important;
	background-size: auto 65% !important;
	background-position: center !important;
}
.pdf, div.pdf {
	background-image: url('/resources/img/pdf.png') !important; 
	background-repeat: no-repeat !important;
	background-size: auto 65% !important;
	background-position: center !important;
}
.pdf-cedula, div.pdf-cedula {
	background-image: url('/resources/img/pdf_cedula.png') !important; 
	background-repeat: no-repeat !important;
	background-size: auto 65% !important;
	background-position: center !important;
}


.video, div.video{
	background-image: url('/resources/img/video.png') !important; 
	background-repeat: no-repeat !important;
	background-size: auto 65% !important;
	background-position: center !important;
}

.ver, div.ver, img.ver, iframe.ver {
	width:100%;
	height:400px;
}

.font-bolder, label.font-bolder{
	font-weight: bolder;
}

.ui-growl .ui-growl-item-container.ui-growl-undefined .ui-growl-image:before,
	body .ui-growl .ui-growl-item-container.ui-growl-fatal .ui-growl-image:before
	{
	content: "";
}

/* =====================================================================
   ESTILO ERGONOMICO DE PLACEHOLDERS (ALTA LEGIBILIDAD SENIOR WCAG AAA)
   Diferenciacion visual inmediata: cursiva y tono Slate-400 suave
   ===================================================================== */
.borde-grid input.ui-inputtext::placeholder,
.borde-grid .ui-inputfield::placeholder,
.borde-grid textarea::placeholder,
.clck_pnl_form input::placeholder,
input.ui-inputtext::placeholder {
	color: #94a3b8 !important;
	font-style: italic !important;
	font-weight: 400 !important;
	font-size: 0.9375rem !important;
	text-transform: none !important;
	opacity: 1 !important;
}

.borde-grid input.ui-inputtext::-webkit-input-placeholder,
.borde-grid .ui-inputfield::-webkit-input-placeholder,
input.ui-inputtext::-webkit-input-placeholder {
	color: #94a3b8 !important;
	font-style: italic !important;
	font-weight: 400 !important;
	font-size: 0.9375rem !important;
	text-transform: none !important;
	opacity: 1 !important;
}

.borde-grid input.ui-inputtext::-moz-placeholder,
.borde-grid .ui-inputfield::-moz-placeholder,
input.ui-inputtext::-moz-placeholder {
	color: #94a3b8 !important;
	font-style: italic !important;
	font-weight: 400 !important;
	font-size: 0.9375rem !important;
	text-transform: none !important;
	opacity: 1 !important;
}

/* =====================================================================
   ANULACION ABSOLUTA DE IMAGENES DE FONDO DE EJEMPLO EN ARCHIVOS CARGADOS
   ===================================================================== */
.fila_archivos.archivo-cargado,
td.fila_archivos.archivo-cargado,
div.fila_archivos.archivo-cargado,
.cedula-frente.archivo-cargado,
.cedula-reverso.archivo-cargado,
.selfie.archivo-cargado,
.recibo.archivo-cargado,
.ruc.archivo-cargado,
.pdf.archivo-cargado,
.pdf-cedula.archivo-cargado,
.video.archivo-cargado {
	background-image: none !important;
	background-color: #ffffff !important;
}




