:root{
	--psk-blue: #005696;
	--psk-blue-dark: #003d6b;
	--psk-green: #8CC63F;
	--psk-green-dark: #6fa82e;
	--psk-gray: #707070;
	--psk-gray-light: #e8ecf0;
	--psk-white: #ffffff;
	--psk-radius: 14px;
	--psk-shadow: 0 20px 60px rgba(0, 86, 150, 0.18);
}

body.psk-solicitudes{
	margin: 0;
	min-height: 100vh;
	font-family: 'Segoe UI', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: 18px;
	background: linear-gradient(135deg, var(--psk-blue-dark) 0%, var(--psk-blue) 48%, #0070b8 100%);
	background-attachment: fixed;
	color: #333;
}

body.psk-solicitudes .form-control,
body.psk-solicitudes select.form-control,
body.psk-solicitudes textarea.form-control,
body.psk-solicitudes .modal .form-control,
body.psk-solicitudes .modal select.form-control,
body.psk-solicitudes .modal textarea.form-control{
	font-size: 1rem;
	line-height: 1.4;
	min-height: 42px;
	padding: 10px 14px;
}

body.psk-solicitudes select.form-control,
body.psk-solicitudes .modal select.form-control{
	padding-right: 38px;
}

body.psk-solicitudes textarea.form-control,
body.psk-solicitudes .modal textarea.form-control{
	min-height: 88px;
	padding: 10px 14px;
}

body.psk-solicitudes .input-group-text,
body.psk-solicitudes .modal .input-group-text{
	font-size: 1rem;
	padding: 10px 14px;
}

body.psk-solicitudes .psk-input-group .form-control,
body.psk-solicitudes .psk-input-group select.form-control{
	font-size: 1rem;
}

body.psk-solicitudes::before,
body.psk-solicitudes::after{
	content: '';
	position: fixed;
	border-radius: 50%;
	pointer-events: none;
	z-index: 0;
}

body.psk-solicitudes::before{
	width: 420px;
	height: 420px;
	background: rgba(140, 198, 63, 0.14);
	top: -120px;
	right: -80px;
}

body.psk-solicitudes::after{
	width: 360px;
	height: 360px;
	background: rgba(255, 255, 255, 0.07);
	bottom: -100px;
	left: -60px;
}

body.psk-solicitudes #cargando{
	z-index: 9999;
}

.psk-solicitud-wrapper{
	position: relative;
	width: 100%;
	max-width: 1120px;
	margin: 0 auto;
	padding: 24px 16px 40px;
}

body.psk-solicitudes .form-xl,
body.psk-solicitudes .psk-solicitud-card{
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: none;
	margin: 0;
	border: none;
	border-radius: var(--psk-radius);
	box-shadow: var(--psk-shadow);
	background: var(--psk-white);
	overflow: hidden;
	animation: pskSolFadeIn 0.45s ease-out;
}

/* Modales fuera del card: deben quedar sobre el backdrop de Bootstrap */
body.psk-solicitudes .modal{
	z-index: 1055;
}

body.psk-solicitudes .modal-backdrop{
	z-index: 1050;
}

@keyframes pskSolFadeIn{
	from{ opacity: 0; transform: translateY(16px); }
	to{ opacity: 1; transform: translateY(0); }
}

.psk-solicitud-header{
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 22px 28px;
	background: linear-gradient(135deg, var(--psk-blue-dark) 0%, var(--psk-blue) 100%);
	color: #fff;
}

.psk-solicitud-header img{
	height: 52px;
	width: auto;
	filter: brightness(0) invert(1);
	flex-shrink: 0;
}

.psk-solicitud-header h1{
	margin: 0 0 4px;
	font-size: 1.35rem;
	font-weight: 700;
	letter-spacing: 0.01em;
}

.psk-solicitud-header p{
	margin: 0;
	font-size: 0.88rem;
	opacity: 0.9;
}

.psk-solicitud-body{
	padding: 24px 28px 8px !important;
}

.psk-solicitud-body > .row > [class*="col-"]{
	margin-bottom: 14px;
}

body.psk-solicitudes .psk-solicitud-body > .row > [class*="col-"]{
	display: flex;
	flex-direction: column;
	gap: 6px;
}

body.psk-solicitudes .psk-field-label{
	display: block;
	font-size: 0.78rem;
	font-weight: 600;
	color: var(--psk-blue);
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

body.psk-solicitudes .psk-field-hint{
	font-size: 0.78rem;
	color: var(--psk-gray);
	text-transform: none;
	letter-spacing: normal;
	font-weight: 400;
}

body.psk-solicitudes .psk-field-label-row{
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.25rem 0.5rem;
}

body.psk-solicitudes .psk-field-label-row.psk-field-label-row-between{
	justify-content: space-between;
	align-items: center;
}

body.psk-solicitudes .psk-field-label-row .psk-field-label{
	display: inline;
	margin: 0;
}

body.psk-solicitudes .psk-field-link{
	font-size: 0.78rem;
	font-weight: 500;
	color: var(--psk-green);
	text-decoration: none;
	text-transform: none;
	letter-spacing: normal;
	white-space: nowrap;
}

body.psk-solicitudes .psk-field-link:hover{
	color: var(--psk-blue);
	text-decoration: underline;
}

body.psk-solicitudes .psk-alert{
	padding: 14px 16px;
	border-radius: 10px;
	margin-bottom: 16px;
	font-size: 0.92rem;
	line-height: 1.55;
	text-transform: none;
	letter-spacing: normal;
	font-weight: 400;
	color: inherit;
}

body.psk-solicitudes .psk-alert b,
body.psk-solicitudes .psk-alert strong{
	font-weight: 700;
}

body.psk-solicitudes .psk-alert-warning{
	background: rgba(245, 158, 11, 0.1);
	border: 1px solid rgba(245, 158, 11, 0.35);
	border-left: 4px solid #f59e0b;
	color: #92400e;
}

body.psk-solicitudes .psk-alert-warning b{
	color: #b45309;
}

body.psk-solicitudes .psk-alert-info{
	background: rgba(0, 86, 150, 0.06);
	border: 1px solid rgba(0, 86, 150, 0.18);
	border-left: 4px solid var(--psk-blue);
	color: #334155;
}

body.psk-solicitudes .psk-alert-danger{
	background: rgba(217, 83, 79, 0.08);
	border: 1px solid rgba(217, 83, 79, 0.28);
	border-left: 4px solid #c9302c;
	color: #7f1d1d;
}

body.psk-solicitudes .psk-alert-title{
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 8px;
	font-size: 0.95rem;
	font-weight: 700;
}

body.psk-solicitudes .psk-alert-danger .psk-alert-title{
	color: #c9302c;
}

body.psk-solicitudes .psk-alert-warning .psk-alert-title{
	color: #b45309;
}

body.psk-solicitudes .psk-alert-info .psk-alert-title{
	color: var(--psk-blue);
}

body.psk-solicitudes .psk-alert-title i{
	font-size: 1rem;
	flex-shrink: 0;
}

body.psk-solicitudes .psk-alert p{
	margin: 0 0 8px;
	line-height: 1.55;
}

body.psk-solicitudes .psk-alert p:last-child{
	margin-bottom: 0;
}

body.psk-solicitudes .psk-alert-keyword{
	display: inline;
	font-weight: 700;
	color: #c9302c;
	letter-spacing: 0.02em;
}

body.psk-solicitudes .psk-section-title{
	margin: 20px 0 12px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--psk-green);
	color: var(--psk-blue-dark);
	font-size: 1.05rem;
	font-weight: 700;
}

body.psk-solicitudes .psk-section-title u,
body.psk-solicitudes .psk-section-title small{
	text-decoration: none;
}

body.psk-solicitudes .psk-section-title small{
	font-size: 0.78rem;
	font-weight: 500;
	color: var(--psk-gray);
}

body.psk-solicitudes .psk-solicitud-footer{
	display: flex;
	justify-content: center;
	padding: 18px 28px 24px !important;
	border-top: 1px solid var(--psk-gray-light);
	background: #f8fafc;
}

body.psk-solicitudes .psk-btn-enviar{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 220px;
	padding: 12px 28px;
	border: none;
	border-radius: 10px;
	background: linear-gradient(135deg, var(--psk-green) 0%, var(--psk-green-dark) 100%);
	color: #fff;
	font-size: 0.95rem;
	font-weight: 600;
	box-shadow: 0 4px 14px rgba(140, 198, 63, 0.35);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

body.psk-solicitudes .psk-btn-enviar:hover{
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgba(140, 198, 63, 0.45);
	color: #fff;
}

body.psk-solicitudes .psk-link-plantilla{
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--psk-blue);
	font-weight: 600;
	text-decoration: none;
}

body.psk-solicitudes .psk-link-plantilla:hover{
	color: var(--psk-blue-dark);
	text-decoration: underline;
}

body.psk-solicitudes .psk-brand-link{
	display: inline-block;
	margin-top: 8px;
	color: var(--psk-blue);
	font-weight: 600;
	text-decoration: none;
}

body.psk-solicitudes .psk-brand-link:hover{
	text-decoration: underline;
}

body.psk-solicitudes #tipos_sistemas.psk-precios-panel{
	overflow: visible;
	max-height: none;
	border-radius: 10px;
	border: 1px solid var(--psk-gray-light);
	background: var(--psk-white);
	box-shadow: var(--psk-shadow);
}

body.psk-solicitudes #tipos_sistemas.psk-precios-panel .psk-precios-table{
	width: 100%;
	min-width: 0;
	margin: 0 !important;
}

body.psk-solicitudes #tipos_sistemas.psk-precios-panel .psk-precios-table thead th{
	position: static;
}

body.psk-solicitudes #tipos_sistemas.psk-precios-panel .psk-precios-table--con-checkbox thead tr:nth-child(2) th:first-child,
body.psk-solicitudes #tipos_sistemas.psk-precios-panel .psk-precios-table--con-checkbox tbody td:first-child,
body.psk-solicitudes #tipos_sistemas.psk-precios-panel .psk-precios-table--con-checkbox thead tr:nth-child(2) th:nth-child(2),
body.psk-solicitudes #tipos_sistemas.psk-precios-panel .psk-precios-table--con-checkbox tbody td:nth-child(2){
	position: static;
	left: auto;
	box-shadow: none;
	min-width: 0;
	max-width: none;
}

body.psk-solicitudes #tipos_sistemas.psk-precios-panel .columna_descuento,
body.psk-solicitudes #tipos_sistemas.psk-precios-panel .columna_total{
	background: #f8fafc !important;
}

body.psk-solicitudes #tipos_sistemas.psk-precios-panel tfoot th,
body.psk-solicitudes #tipos_sistemas.psk-precios-panel tfoot td{
	background: #fff;
	border-top: 2px solid var(--psk-gray-light);
	padding: 12px 10px;
}

body.psk-solicitudes #div_carga_documentos{
	padding: 16px;
	background: #f8fafc;
	border-radius: 10px;
	border: 1px solid var(--psk-gray-light);
}

body.psk-solicitudes #div_carga_documentos h4{
	margin-top: 0;
	color: var(--psk-blue-dark);
}

body.psk-solicitudes #div_carga_documentos ul{
	margin: 8px 0 12px 18px;
}

body.psk-solicitudes .modal-content{
	border: none;
	border-radius: var(--psk-radius);
	overflow: hidden;
	box-shadow: var(--psk-shadow);
}

body.psk-solicitudes .modal-header:not(.titulos-form){
	padding: 14px 20px;
	background: linear-gradient(135deg, var(--psk-blue-dark) 0%, var(--psk-blue) 100%);
	color: #fff;
	border: none;
}

body.psk-solicitudes .modal-header:not(.titulos-form) .modal-title{
	color: #fff;
	font-weight: 600;
}

body.psk-solicitudes .btn-link{
	color: var(--psk-blue);
	font-weight: 500;
}

body.psk-solicitudes .btn-link:hover{
	color: var(--psk-blue-dark);
}

body.psk-solicitudes #consulta_datos_fiscales{
	border-radius: 8px;
	border-color: var(--psk-gray-light);
}

body.psk-solicitudes .psk-modulos-adicionales-block{
	margin-top: 20px;
	padding-top: 4px;
}

body.psk-solicitudes .psk-tabla-modulos-wrap,
#lista_modulos_adicionales_sm{
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border-radius: 10px;
	border: 1px solid var(--psk-gray-light);
	background: #fff;
}

body.psk-solicitudes .psk-tabla-modulos,
#lista_modulos_adicionales_sm .psk-tabla-modulos{
	width: 100%;
	margin: 0 !important;
	border-collapse: collapse;
	table-layout: auto;
}

body.psk-solicitudes .psk-tabla-modulos .psk-col-check,
.psk-tabla-modulos .psk-th-check,
.psk-tabla-modulos .psk-td-check{
	width: 52px;
	min-width: 52px;
}

body.psk-solicitudes .psk-tabla-modulos .psk-th-nombre,
.psk-tabla-modulos .psk-td-nombre{
	min-width: 180px;
}

body.psk-solicitudes .psk-tabla-modulos .psk-th-precio,
.psk-tabla-modulos .psk-td-precio{
	min-width: 96px;
	white-space: nowrap;
}

body.psk-solicitudes .psk-tabla-modulos .psk-checkbox-inline,
.psk-tabla-modulos .psk-checkbox-inline{
	display: inline-flex;
	margin: 0;
}

body.psk-solicitudes .psk-tabla-modulos thead tr,
#lista_modulos_adicionales_sm .psk-tabla-modulos thead tr{
	background: linear-gradient(135deg, var(--psk-blue-dark) 0%, var(--psk-blue) 100%);
}

body.psk-solicitudes .psk-tabla-modulos thead th,
#lista_modulos_adicionales_sm .psk-tabla-modulos thead th{
	background: transparent !important;
	color: #fff;
	border: none;
}

body.psk-solicitudes .psk-tabla-modulos tbody td,
#lista_modulos_adicionales_sm .psk-tabla-modulos tbody td{
	padding: 10px 12px;
	border-top: 1px solid var(--psk-gray-light);
	vertical-align: middle;
}

body.psk-solicitudes .psk-tabla-modulos tbody tr:nth-child(even),
#lista_modulos_adicionales_sm .psk-tabla-modulos tbody tr:nth-child(even){
	background: rgba(0, 86, 150, 0.02);
}

body.psk-solicitudes .psk-tabla-modulos tbody tr:hover,
#lista_modulos_adicionales_sm .psk-tabla-modulos tbody tr:hover{
	background: rgba(140, 198, 63, 0.08);
}

@media (max-width: 768px){
	.psk-solicitud-header{
		flex-direction: column;
		text-align: center;
		padding: 20px 18px;
	}

	.psk-solicitud-body{
		padding: 18px 16px 6px !important;
	}

	.psk-solicitud-footer{
		padding: 16px !important;
	}

	.psk-solicitud-wrapper{
		padding: 12px 10px 28px;
	}
}
