/**
* Template Name: Shuffle - v2.0.0
* Template URL: https://bootstrapmade.com/bootstrap-3-one-page-template-free-shuffle/
* Author: BootstrapMade.com
* License: https://bootstrapmade.com/license/
*/

/* ================================================================
   LANDING PAGE — Navbar, Hero, Stats, Steps, Footer
   ================================================================ */

/* --- Variables de color --- */
:root {
	--lp-primary:    #004884;
	--lp-primary-dk: #003260;
	--lp-accent:     #00a8e8;
	--lp-light:      #f0f6ff;
	--lp-text:       #212529;
	--lp-muted:      #6c757d;
}

body {
	font-family: 'Open Sans', sans-serif;
}

/* --- Loader --- */
.loader-overlay {
	position: fixed;
	inset: 0;
	z-index: 1052;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(0, 36, 72, 0.55);
	backdrop-filter: blur(3px);
	-webkit-backdrop-filter: blur(3px);
}
.loader-card {
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 8px 40px rgba(0,72,132,.22);
	padding: 2.5rem 3rem;
	text-align: center;
	min-width: 260px;
	animation: loaderFadeIn .25s ease;
}
@keyframes loaderFadeIn {
	from { opacity: 0; transform: translateY(-12px) scale(.97); }
	to   { opacity: 1; transform: translateY(0)    scale(1);    }
}
.loader-spinner-ring {
	width: 52px;
	height: 52px;
	border: 5px solid #dde8f7;
	border-top-color: var(--lp-primary);
	border-radius: 50%;
	animation: loaderSpin .75s linear infinite;
	margin: 0 auto 1.2rem;
}
@keyframes loaderSpin {
	to { transform: rotate(360deg); }
}
.loader-title {
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--lp-primary);
	margin: 0 0 .35rem;
}
.loader-sub {
	font-size: .8rem;
	color: var(--lp-muted);
	margin: 0;
}

/* --- Navbar --- */
.lp-navbar {
	background: var(--lp-primary);
	padding: 0.75rem 0;
	box-shadow: 0 2px 12px rgba(0,0,0,.18);
	position: sticky;
	top: 0;
	z-index: 1000;
}
.lp-brand {
	display: flex;
	align-items: center;
	text-decoration: none !important;
	padding: 4px 0;
}
@media (max-width: 991.98px) {
	.lp-brand { margin-left: .75rem; }
}
.lp-logo {
	height: 38px;
	width: auto;
	background: #fff;
	border-radius: 14px;
	padding: 4px 10px;
	display: block;
	object-fit: contain;
}
.lp-navbar .nav-link {
	color: rgba(255,255,255,.85) !important;
	font-size: 0.9rem;
	padding: 0.5rem 0.9rem !important;
	transition: color .2s;
}
.lp-navbar .nav-link:hover { color: #fff !important; }
.lp-btn-apply {
	background: var(--lp-accent);
	color: #fff !important;
	font-size: 0.85rem;
	font-weight: 600;
	padding: 0.45rem 1.1rem;
	border-radius: 6px;
	border: none;
	transition: background .2s, transform .15s;
}
.lp-btn-apply:hover { background: #0090cc; transform: translateY(-1px); color: #fff !important; }
.lp-btn-login {
	background: transparent;
	color: rgba(255,255,255,.85) !important;
	font-size: 0.85rem;
	font-weight: 600;
	padding: 0.42rem 1rem;
	border-radius: 6px;
	border: 1px solid rgba(255,255,255,.4);
	transition: border-color .2s, color .2s;
}
.lp-btn-login:hover { border-color: #fff; color: #fff !important; }

/* --- Hero --- */
.lp-hero {
	background: linear-gradient(135deg, var(--lp-primary) 0%, #0068b8 55%, var(--lp-accent) 100%);
	min-height: auto;
	display: flex;
	align-items: center;
	padding: 4rem 0 3rem;
	overflow: hidden;
	position: relative;
}
.lp-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
.lp-hero-text {
	position: relative;
	z-index: 1;
}
.lp-badge {
	display: inline-block;
	background: rgba(255,255,255,.15);
	color: #fff;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: 0.3rem 0.85rem;
	border-radius: 20px;
	border: 1px solid rgba(255,255,255,.25);
	margin-bottom: 1.2rem;
}
.lp-hero-title {
	font-family: 'Montserrat', sans-serif;
	font-size: 2.8rem;
	font-weight: 800;
	color: #fff;
	line-height: 1.2;
	margin-bottom: 1.4rem;
}
.lp-highlight {
	color: var(--lp-accent);
	font-size: 1.5rem;
	display: block;
}
.lp-hero-desc {
	color: rgba(255,255,255,.88);
	font-size: 1.05rem;
	line-height: 1.75;
	margin-bottom: 2rem;
	max-width: 520px;
}
.lp-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-bottom: 1.2rem;
}
.lp-btn-primary {
	background: var(--lp-accent);
	color: #fff !important;
	font-weight: 700;
	font-size: 1rem;
	padding: 0.75rem 2rem;
	border-radius: 8px;
	border: none;
	transition: background .2s, box-shadow .2s, transform .15s;
	box-shadow: 0 4px 18px rgba(0,168,232,.4);
}
.lp-btn-primary:hover {
	background: #0090cc;
	box-shadow: 0 6px 22px rgba(0,168,232,.55);
	transform: translateY(-2px);
	color: #fff !important;
}
.lp-btn-secondary {
	background: rgba(255,255,255,.12);
	color: #fff !important;
	font-weight: 600;
	font-size: 1rem;
	padding: 0.73rem 1.8rem;
	border-radius: 8px;
	border: 1px solid rgba(255,255,255,.35);
	transition: background .2s, border-color .2s;
}
.lp-btn-secondary:hover {
	background: rgba(255,255,255,.22);
	border-color: rgba(255,255,255,.6);
	color: #fff !important;
}
.lp-disclaimer {
	color: rgba(255,255,255,.55);
	font-size: 0.78rem;
	margin-top: 0.5rem;
	margin-bottom: 0;
}
.lp-hero-img-wrap {
	justify-content: center;
	align-items: center;
	position: relative;
	z-index: 1;
}
.lp-hero-img {
	max-width: 100%;
	border-radius: 16px;
	box-shadow: 0 20px 60px rgba(0,0,0,.3);
	animation: lp-float 4s ease-in-out infinite;
}
@keyframes lp-float {
	0%, 100% { transform: translateY(0); }
	50%       { transform: translateY(-12px); }
}

/* --- Stats --- */
.lp-stats {
	background: #fff;
	padding: 2.5rem 0;
	border-bottom: 1px solid #e8f0f8;
}
.lp-stat-card {
	text-align: center;
	padding: 1.4rem 1rem;
	border-radius: 12px;
	transition: box-shadow .2s;
}
.lp-stat-card:hover {
	box-shadow: 0 4px 20px rgba(0,72,132,.1);
}
.lp-stat-icon {
	font-size: 1.8rem;
	margin-bottom: 0.4rem;
}
.lp-stat-value {
	font-family: 'Montserrat', sans-serif;
	font-size: 1.5rem;
	font-weight: 800;
	color: var(--lp-primary);
}
.lp-stat-label {
	font-size: 0.82rem;
	color: var(--lp-muted);
	text-transform: uppercase;
	letter-spacing: .05em;
	margin-top: 0.2rem;
}

/* --- Nanoprima Section --- */
.lp-nanoprima {
	background: linear-gradient(135deg, #1a5c2e 0%, #27843f 55%, #1f7a62 100%);
	padding: 5rem 0;
	color: #fff;
}
.lp-nanoprima .row {
	align-items: stretch;
}
.lp-nanoprima .lp-hero-img-wrap {
	display: flex;
	padding: 0 2.5rem 0 0;
	height: 100%;
}
.lp-nanoprima .lp-hero-img {
	width: 100%;
	height: 100%;
	min-height: 380px;
	object-fit: cover;
	object-position: center top;
	border-radius: 16px;
	animation: none;
	box-shadow: 0 12px 40px rgba(0,0,0,.35);
}
.lp-np-tag {
	display: inline-block;
	background: rgba(255,255,255,.2);
	color: #fff;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: .25rem .8rem;
	border-radius: 20px;
	margin-bottom: .9rem;
}
.lp-np-title {
	font-family: 'Montserrat', sans-serif;
	font-size: 2.8rem;
	font-weight: 800;
	color: #fff;
	line-height: 1.2;
	margin-bottom: 1.2rem;
}
.lp-np-highlight {
	color: #7deeab;
	font-size: 1.5rem;
	display: block;
}
.lp-np-desc {
	color: rgba(255,255,255,.88);
	font-size: 1.05rem;
	line-height: 1.75;
	margin-bottom: 1.5rem;
}
.lp-np-stats {
	margin-bottom: .5rem;
}
.lp-np-stat {
	background: rgba(255,255,255,.12);
	border-radius: 10px;
	padding: .9rem .75rem;
	text-align: center;
	margin-bottom: .75rem;
}
.lp-np-stat-value {
	font-family: 'Montserrat', sans-serif;
	font-size: 1.35rem;
	font-weight: 800;
	color: #7deeab;
}
.lp-np-stat-label {
	font-size: .78rem;
	color: rgba(255,255,255,.75);
	text-transform: uppercase;
	letter-spacing: .05em;
	margin-top: .2rem;
}
.lp-np-btn {
	background: #fff;
	color: #1a5c2e;
	font-weight: 700;
	font-size: .95rem;
	padding: .75rem 2rem;
	border-radius: 50px;
	transition: background .2s, transform .2s, box-shadow .2s;
	box-shadow: 0 4px 16px rgba(0,0,0,.2);
}
.lp-np-btn:hover {
	background: #7deeab;
	color: #1a5c2e;
	transform: translateY(-2px);
	box-shadow: 0 6px 24px rgba(0,0,0,.25);
}

@media (max-width: 991.98px) {
	.lp-np-title { font-size: 2rem; }
}
@media (max-width: 575.98px) {
	.lp-np-title { font-size: 1.5rem; }
	.lp-np-highlight { font-size: 1.1rem; }
}

/* --- How it works --- */
.lp-steps {
	background: var(--lp-light);
	padding: 5rem 0;
}
.lp-section-title {
	font-family: 'Montserrat', sans-serif;
	font-size: 2rem;
	font-weight: 800;
	color: var(--lp-primary);
}
.lp-section-sub {
	color: var(--lp-muted);
	font-size: 1rem;
	margin-top: 0.3rem;
}
.lp-step-card {
	background: #fff;
	border-radius: 14px;
	padding: 2rem 1.8rem;
	text-align: center;
	height: 100%;
	box-shadow: 0 2px 12px rgba(0,72,132,.08);
	transition: box-shadow .25s, transform .25s;
}
.lp-step-card:hover {
	box-shadow: 0 8px 30px rgba(0,72,132,.15);
	transform: translateY(-4px);
}
.lp-step-num {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--lp-primary), var(--lp-accent));
	color: #fff;
	font-family: 'Montserrat', sans-serif;
	font-size: 1.4rem;
	font-weight: 800;
	margin: 0 auto 1.2rem;
}
.lp-step-card h5 {
	font-family: 'Montserrat', sans-serif;
	font-weight: 700;
	color: var(--lp-primary);
	margin-bottom: 0.75rem;
}
.lp-step-card p {
	color: var(--lp-muted);
	font-size: 0.92rem;
	line-height: 1.65;
	margin-bottom: 0;
}

/* --- Footer --- */
.lp-footer {
	background: var(--lp-primary-dk);
	color: rgba(255,255,255,.65);
	padding: 1.5rem 0;
	font-size: 0.85rem;
}
.lp-footer a {
	color: var(--lp-accent);
	text-decoration: none;
}
.lp-footer a:hover { text-decoration: underline; }
.lp-footer-brand {
	font-family: 'Montserrat', sans-serif;
	font-weight: 700;
	color: #fff;
	font-size: 0.95rem;
}

/* --- Responsive --- */
@media (max-width: 991.98px) {
	.lp-hero { min-height: auto; padding: 3.5rem 0 3rem; }
	.lp-hero-title { font-size: 1.6rem; }
}
@media (max-width: 575.98px) {
	.lp-hero-title { font-size: 1.3rem; }
	.lp-btn-primary, .lp-btn-secondary { width: 100%; text-align: center; }
}

/* ================================================================
   SOLICITUD FORM PAGE
   ================================================================ */

/* Page header (mini hero) */
.sf-page-header {
	background: linear-gradient(135deg, var(--lp-primary) 0%, #0068b8 100%);
	padding: 2.8rem 0 2.2rem;
}
.sf-page-title {
	font-family: 'Montserrat', sans-serif;
	font-size: 1.9rem;
	font-weight: 800;
	color: #fff;
	margin-bottom: 0.3rem;
}
.sf-page-sub {
	color: rgba(255,255,255,.75);
	font-size: 0.95rem;
	margin-bottom: 0;
}

/* Main container */
.sf-container {
	padding-top: 2rem;
	padding-bottom: 3rem;
}

/* Section blocks */
.sf-section {
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 2px 12px rgba(0,72,132,.08);
	padding: 1.8rem 2rem;
	margin-bottom: 1.5rem;
}
.sf-section-title {
	font-family: 'Montserrat', sans-serif;
	font-size: 1rem;
	font-weight: 700;
	color: var(--lp-primary);
	text-transform: uppercase;
	letter-spacing: .06em;
	margin-bottom: 1.4rem;
	padding-bottom: 0.7rem;
	border-bottom: 2px solid var(--lp-light);
	display: flex;
	align-items: center;
	gap: 0.6rem;
}
.sf-section-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--lp-primary), var(--lp-accent));
	color: #fff;
	font-size: 0.85rem;
	font-weight: 800;
	flex-shrink: 0;
}

/* Form controls */
.sf-section .form-control {
	border: 1px solid #d0dce8;
	border-radius: 7px;
	padding: 0.5rem 0.85rem;
	font-size: 0.92rem;
	transition: border-color .2s, box-shadow .2s;
}
.sf-section .form-control:focus {
	border-color: var(--lp-accent);
	box-shadow: 0 0 0 3px rgba(0,168,232,.15);
}
.sf-section label {
	font-size: 0.85rem;
	font-weight: 600;
	color: #495057;
	margin-bottom: 0.3rem;
}

/* Documents section */
.sf-docs-note {
	color: var(--lp-muted);
	font-size: 0.9rem;
	line-height: 1.6;
	margin-bottom: 1rem;
}
.sf-downloads {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem;
	background: #eafbeb;
	border: 1px solid #c3ebc5;
	border-radius: 8px;
	padding: 0.85rem 1.1rem;
	margin-bottom: 0.5rem;
}
.sf-downloads-label {
	font-weight: 700;
	font-size: 0.88rem;
	color: #1a6b1e;
	margin-right: 0.3rem;
}
.sf-download-link {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	color: #1a6b1e;
	font-size: 0.85rem;
	font-weight: 600;
	text-decoration: none;
	background: rgba(255,255,255,.7);
	border: 1px solid #a8d9aa;
	border-radius: 5px;
	padding: 0.3rem 0.75rem;
	transition: background .2s, border-color .2s;
}
.sf-download-link:hover {
	background: #fff;
	border-color: #1a6b1e;
	color: #1a6b1e;
	text-decoration: none;
}

/* File inputs */
.sf-file-group label {
	display: block;
}
.sf-file-input {
	display: block;
	width: 100%;
	font-size: 0.88rem;
	color: #495057;
}

/* Submit area */
.sf-submit-area {
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 2px 12px rgba(0,72,132,.08);
	padding: 1.8rem 2rem;
	text-align: center;
}
.sf-btn-submit {
	background: linear-gradient(135deg, var(--lp-primary), var(--lp-accent));
	color: #fff;
	font-family: 'Montserrat', sans-serif;
	font-weight: 700;
	font-size: 1rem;
	padding: 0.75rem 2.5rem;
	border-radius: 8px;
	border: none;
	box-shadow: 0 4px 18px rgba(0,72,132,.3);
	transition: box-shadow .2s, transform .15s, opacity .2s;
	display: inline-block;
	margin-bottom: 1.2rem;
}
.sf-btn-submit:hover {
	box-shadow: 0 6px 24px rgba(0,72,132,.4);
	transform: translateY(-2px);
	color: #fff;
}
.sf-btn-submit:disabled {
	opacity: .65;
	transform: none;
}
.sf-privacy {
	font-size: 0.8rem;
	color: var(--lp-muted);
	max-width: 600px;
	margin: 0 auto;
	line-height: 1.55;
}
.sf-privacy a { color: var(--lp-primary); }

@media (max-width: 575.98px) {
	.sf-section { padding: 1.3rem 1rem; }
	.sf-btn-submit { width: 100%; }
}

/* -------------------------------------------------------
   Simulación de crédito
------------------------------------------------------- */
.sf-sim-section {
	background: linear-gradient(135deg, #f0f6ff 0%, #e8f4fd 100%);
	border: 1.5px solid #c2d9f0;
	animation: sf-sim-fadein .35s ease;
}
@keyframes sf-sim-fadein {
	from { opacity: 0; transform: translateY(-10px); }
	to   { opacity: 1; transform: translateY(0); }
}
.sf-section-num--icon {
	width: 28px;
	height: 28px;
	background: linear-gradient(135deg, #00a8e8, #004884);
}
.sf-sim-badge {
	margin-left: auto;
	background: #004884;
	color: #fff;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: .04em;
	padding: 2px 9px;
	border-radius: 20px;
}
/* Summary cards */
.sf-sim-cards {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-bottom: 1.4rem;
}
.sf-sim-card {
	flex: 1 1 140px;
	background: #fff;
	border-radius: 10px;
	padding: 1rem 1.2rem;
	box-shadow: 0 1px 6px rgba(0,72,132,.10);
	text-align: center;
	border-top: 3px solid #d0dce8;
}
.sf-sim-card--highlight {
	border-top-color: #004884;
}
.sf-sim-card--interest {
	border-top-color: #00a8e8;
}
.sf-sim-card-label {
	font-size: 0.75rem;
	font-weight: 600;
	color: #6c757d;
	text-transform: uppercase;
	letter-spacing: .05em;
	margin-bottom: 0.4rem;
}
.sf-sim-card-value {
	font-size: 1.2rem;
	font-weight: 800;
	color: #004884;
	font-family: 'Montserrat', sans-serif;
}
.sf-sim-card--highlight .sf-sim-card-value {
	font-size: 1.4rem;
	color: #004884;
}
.sf-sim-card--interest .sf-sim-card-value {
	color: #00a8e8;
}
/* Amortization table */
.sf-sim-table-wrap {
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 1px 6px rgba(0,72,132,.08);
}
.sf-sim-table {
	background: #fff;
	margin-bottom: 0;
	font-size: 0.88rem;
}
.sf-sim-table thead th {
	background: #004884;
	color: #fff;
	font-size: 0.78rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
	border: none;
	padding: 0.6rem 0.8rem;
	white-space: nowrap;
}
.sf-sim-th-cuota {
	background: #003260 !important;
}
.sf-sim-table tbody tr:nth-child(odd) { background: #f8fbff; }
.sf-sim-table tbody tr:hover { background: #e8f4fd; }
.sf-sim-table tbody td {
	padding: 0.55rem 0.8rem;
	vertical-align: middle;
	border-color: #e3edf7;
	white-space: nowrap;
}
.sf-sim-table tbody td:first-child {
	text-align: center;
	font-weight: 700;
	color: #004884;
}
.sf-sim-table td.sim-td-cuota {
	font-weight: 700;
	color: #004884;
	background: #f0f6ff;
}
.sf-sim-table tfoot td {
	font-weight: 700;
	font-size: 0.82rem;
	background: #e8f4fd;
	border-top: 2px solid #c2d9f0;
	padding: 0.55rem 0.8rem;
	white-space: nowrap;
}
.sf-sim-nota {
	font-size: 0.78rem;
	color: #6c757d;
	margin-top: 0.8rem;
	margin-bottom: 0;
}

/* ── Nanoprima: tema verde ─────────────────────────── */
.sf-sim-section--prima {
	background: linear-gradient(135deg, #f0fff4 0%, #e6f9ee 100%);
	border-color: #b2dfcc;
}
.sf-sim-section--prima .sf-section-title {
	color: #1a6b3c;
	border-bottom-color: #b2dfcc;
}
.sf-sim-section--prima .sf-section-num--icon {
	background: linear-gradient(135deg, #28a745, #1a6b3c);
}
.sf-sim-section--prima .sf-sim-badge {
	background: #1a6b3c;
}
.sf-sim-section--prima .sf-sim-card--highlight {
	border-top-color: #1a6b3c;
}
.sf-sim-section--prima .sf-sim-card--highlight .sf-sim-card-value {
	color: #1a6b3c;
}
.sf-sim-section--prima .sf-sim-card--interest .sf-sim-card-value {
	color: #28a745;
}
.sf-sim-section--prima .sf-sim-table thead th {
	background: #1a6b3c;
}
.sf-sim-section--prima .sf-sim-th-cuota,
.sf-sim-section--prima thead th.sf-sim-th-cuota {
	background: #145230 !important;
}
.sf-sim-section--prima .sf-sim-table tbody tr:nth-child(odd) {
	background: #f0fff4;
}
.sf-sim-section--prima .sf-sim-table tbody tr:hover {
	background: #d4edda;
}
.sf-sim-section--prima .sf-sim-table tfoot td {
	background: #e6f9ee;
	border-top-color: #b2dfcc;
}
.sf-sim-section--prima td.sim-td-cuota {
	color: #1a6b3c;
	background: #f0fff4;
}

/* Fila de pago Nanoprima */
.sf-sim-row-pago {
	background: #d4edda !important;
	font-weight: 700;
}
.sf-sim-row-pago td { color: #1a6b3c; }
.sf-sim-pago-tag {
	display: inline-block;
	background: #1a6b3c;
	color: #fff;
	font-size: 0.65rem;
	font-weight: 800;
	letter-spacing: .05em;
	padding: 1px 6px;
	border-radius: 10px;
	vertical-align: middle;
	margin-left: 4px;
}


/*--------------------------------------------------------------
# General
--------------------------------------------------------------*/
.card-small {
	min-height: 37px;
	padding: 0 12px;
	font-size: 14px;
}
@media print {
	#imprimir {
		position: absolute;
		z-index: 15;
		margin: 0 0 0 10%;
	}
}

#capacidadModal {
    z-index: 1055; /* O más alto si lo necesitas */
}
.modal-backdrop {
    z-index: 1040;
}
.logo {
	position: absolute;
	left: 50%;
	padding: 10px 20px;
	border-radius: 5px;
	box-shadow: 0 0 15px 0 rgba(0, 0, 0, .12);
	background: #fff;
	-ms-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	top: 70px;
	z-index: 9999;
}
.logo img {
	display: block;
	width: 174px;
	max-width: none;
}
.login_microsoft {
}
.rotar {
	transform: rotate(270deg);
}


hr.solid {
   border-top: 2px solid #999;
}

.select-govco .bootstrap-select .dropdown-menu.show ul.show, .select-govco--error .bootstrap-select .dropdown-menu.show ul.show, .select-govco--inactive .bootstrap-select .dropdown-menu.show ul.show, .select-govco-filter .bootstrap-select .dropdown-menu.show ul.show{
	max-height:250px!important;
}

/* Validation */
label.error {
	color: #cc5965!important;
	display: inline-block;
	margin-left: 5px;
}




/* ================================================================
   LOGIN PAGE
   ================================================================ */
.lp-login-body {
	min-height: 100vh;
	background: linear-gradient(135deg, var(--lp-primary) 0%, #0068b8 55%, var(--lp-accent) 100%);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	font-family: 'Open Sans', sans-serif;
}
.lp-login-wrap {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem 1rem;
	flex: 1;
}
.lp-login-card {
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 8px 40px rgba(0,0,0,.22);
	padding: 2.5rem 2.8rem;
	width: 100%;
	max-width: 420px;
}
.lp-login-logo {
	text-align: center;
	margin-bottom: 1.5rem;
}
.lp-login-logo img {
	height: 54px;
	width: auto;
}
.lp-login-header {
	text-align: center;
	margin-bottom: 1.8rem;
}
.lp-login-title {
	font-family: 'Montserrat', sans-serif;
	font-size: 1.5rem;
	font-weight: 800;
	color: var(--lp-primary);
	margin-bottom: .3rem;
}
.lp-login-sub {
	font-size: .88rem;
	color: var(--lp-muted);
	margin-bottom: 0;
}
.lp-login-card label {
	font-size: .85rem;
	font-weight: 600;
	color: #495057;
	margin-bottom: .3rem;
}
.lp-login-input-wrap {
	position: relative;
}
.lp-login-icon {
	position: absolute;
	left: .85rem;
	top: 50%;
	transform: translateY(-50%);
	color: var(--lp-accent);
	pointer-events: none;
}
.lp-login-input {
	padding-left: 2.5rem !important;
	border: 1.5px solid #d0dce8;
	border-radius: 8px;
	font-size: .92rem;
	transition: border-color .2s, box-shadow .2s;
}
.lp-login-input:focus {
	border-color: var(--lp-accent);
	box-shadow: 0 0 0 3px rgba(0,168,232,.15);
	outline: none;
}
.lp-login-btn {
	width: 100%;
	background: linear-gradient(135deg, var(--lp-primary), var(--lp-accent));
	color: #fff;
	font-family: 'Montserrat', sans-serif;
	font-weight: 700;
	font-size: .95rem;
	letter-spacing: .04em;
	border: none;
	border-radius: 8px;
	padding: .7rem 1rem;
	margin-top: .6rem;
	transition: opacity .2s, transform .15s;
}
.lp-login-btn:hover {
	opacity: .92;
	transform: translateY(-1px);
	color: #fff;
}
.lp-login-back {
	text-align: center;
	margin-top: 1.2rem;
	margin-bottom: 0;
	font-size: .83rem;
}
.lp-login-back a {
	color: var(--lp-accent);
	text-decoration: none;
	font-weight: 600;
}
.lp-login-back a:hover { text-decoration: underline; }
.lp-login-footer {
	text-align: center;
	color: rgba(255,255,255,.7);
	font-size: .95rem;
	padding: 1rem;
}
.lp-login-footer a { color: rgba(255,255,255,.9); }
@media (max-width: 480px) {
	.lp-login-card { padding: 2rem 1.4rem; }
}


/* ================================================================
   ADMIN PANEL
   ================================================================ */

/* ── Body ── */
.adm-body {
   font-family: 'Open Sans', sans-serif;
   background: #f0f4f8;
}

/* ── Navbar superior ── */
.adm-navbar {
   background: linear-gradient(90deg, var(--lp-primary) 0%, #0068b8 60%, var(--lp-accent) 100%) !important;
   border-bottom: none !important;
   box-shadow: 0 2px 8px rgba(0,72,132,.25);
}
.adm-toggle, .adm-navbar .nav-link {
   color: rgba(255,255,255,.9) !important;
}
.adm-navbar-title {
   color: rgba(255,255,255,.85);
   font-family: 'Montserrat', sans-serif;
   font-weight: 700;
   font-size: .9rem;
   letter-spacing: .04em;
   text-transform: uppercase;
}
.adm-user-info {
   color: rgba(255,255,255,.9);
   font-size: .85rem;
   font-weight: 600;
}
.adm-rol-badge {
   background: rgba(255,255,255,.2);
   border: 1px solid rgba(255,255,255,.35);
   color: #fff;
   font-size: .7rem;
   font-weight: 700;
   padding: 1px 8px;
   border-radius: 20px;
   letter-spacing: .04em;
   text-transform: uppercase;
}
.adm-logout-btn {
   background: rgba(255,255,255,.15);
   border: 1px solid rgba(255,255,255,.3);
   color: #fff !important;
   font-size: .82rem;
   font-weight: 600;
   padding: .3rem .9rem;
   border-radius: 6px;
   transition: background .2s;
}
.adm-logout-btn:hover { background: rgba(255,255,255,.28); }

/* ── Sidebar ── */
.adm-sidebar {
   background: var(--lp-primary-dk) !important;
}
.adm-brand {
   background: #fff !important;
   border-bottom: 2px solid var(--lp-accent) !important;
   padding: .75rem 1.1rem !important;
   display: flex;
   align-items: center;
   justify-content: center;
}
.adm-brand-logo {
   height: 40px;
   width: auto;
}
.sidebar-collapse .adm-brand-logo {
   display: none;
}
.sidebar-collapse .adm-brand {
   justify-content: center;
   padding: .75rem .5rem !important;
}
.sidebar-collapse .main-sidebar:hover .adm-brand-logo {
   display: block;
}
.sidebar-collapse .main-sidebar:hover .adm-brand {
   padding: .75rem 1.1rem !important;
   justify-content: center;
}
.adm-user-panel {
   display: flex;
   align-items: center;
   gap: .8rem;
   padding: 1rem 1rem .8rem;
   border-bottom: 1px solid rgba(255,255,255,.08);
   margin-bottom: .5rem;
}
.adm-user-avatar {
   width: 38px;
   height: 38px;
   border-radius: 50%;
   background: rgba(255,255,255,.12);
   display: flex;
   align-items: center;
   justify-content: center;
   color: var(--lp-accent);
   font-size: 1.1rem;
   flex-shrink: 0;
}
.adm-user-name {
   display: block;
   color: #fff;
   font-family: 'Montserrat', sans-serif;
   font-weight: 700;
   font-size: .82rem;
   line-height: 1.2;
}
.adm-user-role {
   display: block;
   color: var(--lp-accent);
   font-size: .72rem;
   font-weight: 600;
   text-transform: uppercase;
   letter-spacing: .05em;
}
.adm-nav-header {
   color: rgba(255,255,255,.4) !important;
   font-size: .68rem;
   font-weight: 700;
   letter-spacing: .08em;
   text-transform: uppercase;
   padding: .8rem 1rem .3rem;
}
.adm-nav-link {
   color: rgba(255,255,255,.75) !important;
   border-radius: 7px !important;
   margin: 1px 8px !important;
   padding: .52rem .9rem !important;
   font-size: .85rem;
   font-weight: 600;
   transition: background .18s, color .18s !important;
}
.adm-nav-link:hover {
   background: rgba(255,255,255,.1) !important;
   color: #fff !important;
}
.adm-nav-link.active {
   background: var(--lp-accent) !important;
   color: #fff !important;
}
.adm-nav-link .nav-icon {
   color: inherit !important;
   width: 1.3rem;
}

/* ── Contenido ── */
.adm-content-wrapper {
   background: #f0f4f8 !important;
   min-height: calc(100vh - 57px) !important;
}
.adm-content-wrapper > .content { padding: 1.5rem 1rem; }

/* ── Footer ── */
.adm-footer {
   background: #fff !important;
   border-top: 1px solid #dde3ea !important;
   color: var(--lp-muted) !important;
   font-size: .82rem;
}
.adm-footer a { color: var(--lp-primary) !important; }

/* ── Modal header ── */
.adm-modal-header {
   background: linear-gradient(90deg, var(--lp-primary), var(--lp-accent));
   color: #fff;
}
.adm-modal-header .close { color: #fff; opacity: .8; }

/* ── Dashboard ── */
.adm-dash-header { border-bottom: 2px solid #dde3ea; padding-bottom: 1rem; }
.adm-dash-title {
   font-family: 'Montserrat', sans-serif;
   font-size: 1.4rem;
   font-weight: 800;
   color: var(--lp-primary);
   margin-bottom: .2rem;
   display: flex;
   align-items: center;
   gap: .6rem;
   flex-wrap: wrap;
}
.adm-dash-role {
   font-size: .72rem;
   font-weight: 700;
   background: var(--lp-accent);
   color: #fff;
   padding: 2px 10px;
   border-radius: 20px;
   letter-spacing: .05em;
   text-transform: uppercase;
   vertical-align: middle;
}
.adm-dash-sub {
   color: var(--lp-muted);
   font-size: .85rem;
   margin-bottom: 0;
   text-transform: capitalize;
}

/* ── Stat cards ── */
.adm-stat-card {
   display: flex;
   align-items: center;
   gap: 1rem;
   background: #fff;
   border-radius: 12px;
   padding: 1.3rem 1.4rem;
   box-shadow: 0 2px 10px rgba(0,72,132,.09);
   text-decoration: none !important;
   transition: transform .18s, box-shadow .18s;
   border-left: 5px solid transparent;
}
.adm-stat-card:hover {
   transform: translateY(-3px);
   box-shadow: 0 6px 20px rgba(0,72,132,.15);
}
.adm-stat-icon {
   width: 46px;
   height: 46px;
   border-radius: 10px;
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: 1.3rem;
   flex-shrink: 0;
   color: #fff;
}
.adm-stat-num {
   font-family: 'Montserrat', sans-serif;
   font-size: 1.8rem;
   font-weight: 800;
   line-height: 1;
   color: var(--lp-primary);
}
.adm-stat-label {
   font-size: .78rem;
   font-weight: 600;
   color: var(--lp-muted);
   text-transform: uppercase;
   letter-spacing: .04em;
   margin-top: .2rem;
}
/* Colores por estado */
.adm-stat-pending  { border-left-color: #f39c12; }
.adm-stat-pending  .adm-stat-icon { background: #f39c12; }
.adm-stat-review   { border-left-color: var(--lp-accent); }
.adm-stat-review   .adm-stat-icon { background: var(--lp-accent); }
.adm-stat-approved { border-left-color: #28a745; }
.adm-stat-approved .adm-stat-icon { background: #28a745; }
.adm-stat-rejected { border-left-color: #dc3545; }
.adm-stat-rejected .adm-stat-icon { background: #dc3545; }
.adm-stat-total    { border-left-color: var(--lp-primary); }
.adm-stat-total    .adm-stat-icon { background: var(--lp-primary); }

/* ── Quick access ── */
.adm-quick-card {
   background: #fff;
   border-radius: 12px;
   padding: 1.4rem 1.6rem;
   box-shadow: 0 2px 10px rgba(0,72,132,.09);
}
.adm-quick-title {
   font-family: 'Montserrat', sans-serif;
   font-size: .8rem;
   font-weight: 700;
   color: var(--lp-muted);
   text-transform: uppercase;
   letter-spacing: .07em;
   margin-bottom: 1rem;
}
.adm-quick-links { display: flex; flex-wrap: wrap; gap: .6rem; }
.adm-quick-btn {
   display: inline-flex;
   align-items: center;
   padding: .45rem 1rem;
   border-radius: 7px;
   font-size: .83rem;
   font-weight: 700;
   text-decoration: none !important;
   border: 2px solid transparent;
   transition: opacity .18s, transform .15s;
}
.adm-quick-btn:hover { opacity: .85; transform: translateY(-1px); }
.adm-quick-pending  { background: #fff3cd; color: #856404; border-color: #f39c12; }
.adm-quick-review   { background: #e8f4fd; color: #004884; border-color: var(--lp-accent); }
.adm-quick-approved { background: #d4edda; color: #1a6b3c; border-color: #28a745; }
.adm-quick-rejected { background: #f8d7da; color: #721c24; border-color: #dc3545; }
.adm-quick-users    { background: #e2e3f0; color: #383d7a; border-color: #6c757d; }
.adm-quick-home     { background: #f0f6ff; color: var(--lp-primary); border-color: var(--lp-primary); }

/* ================================================================
   SOLICITUD LIST VIEWS (pendiente, por_aprobar, aprobadas, rechazadas)
   ================================================================ */

/* Encabezado de página */
.sl-page-header {
   display: flex;
   align-items: center;
   justify-content: space-between;
   flex-wrap: wrap;
   gap: .5rem;
   border-bottom: 2px solid #dde3ea;
   padding-bottom: .85rem;
}
.sl-page-header-left  { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.sl-page-header-right { display: flex; align-items: center; gap: .5rem; }
.sl-page-title {
   font-size: 1.15rem;
   font-weight: 700;
   color: var(--lp-primary);
   margin: 0;
}
.sl-page-badge {
   display: inline-block;
   padding: .2rem .75rem;
   border-radius: 50px;
   font-size: .78rem;
   font-weight: 600;
}
.sl-badge-pending  { background: #fff3cd; color: #856404; }
.sl-badge-review   { background: #e8f4fd; color: var(--lp-primary); }
.sl-badge-approved { background: #d4edda; color: #1a6b3c; }
.sl-badge-rejected { background: #f8d7da; color: #721c24; }

/* Buscador */
.sl-search-bar {
   display: flex;
   align-items: center;
   gap: 1rem;
   flex-wrap: wrap;
}
.sl-search-input-wrap {
   position: relative;
   flex: 0 0 340px;
}
.sl-search-icon {
   position: absolute;
   left: .85rem;
   top: 50%;
   transform: translateY(-50%);
   color: var(--lp-primary);
   font-size: .9rem;
}
.sl-search-input {
   width: 100%;
   padding: .5rem 2.4rem .5rem 2.3rem;
   border: 1.5px solid #c4d3e8;
   border-radius: 8px;
   font-size: .9rem;
   background: #f7faff;
   color: var(--lp-text);
   transition: border-color .2s, box-shadow .2s;
}
.sl-search-input:focus {
   outline: none;
   border-color: var(--lp-accent);
   box-shadow: 0 0 0 3px rgba(0,168,232,.12);
   background: #fff;
}
.sl-search-clear {
   position: absolute;
   right: .6rem;
   top: 50%;
   transform: translateY(-50%);
   background: none;
   border: none;
   color: #aab;
   cursor: pointer;
   font-size: .85rem;
   padding: .1rem .3rem;
}
.sl-search-clear:hover { color: #dc3545; }
.sl-search-hint { font-size: .78rem; color: var(--lp-muted); }

/* Card contenedor */
.sl-card {
   background: #fff;
   border-radius: 10px;
   box-shadow: 0 2px 12px rgba(0,72,132,.07);
   overflow: hidden;
}

/* Tabla */
.sl-table {
   margin: 0 !important;
   font-size: .855rem;
}
.sl-table thead th {
   background: var(--lp-primary);
   color: #fff;
   font-weight: 600;
   font-size: .8rem;
   text-transform: uppercase;
   letter-spacing: .04em;
   border: none !important;
   padding: .75rem 1rem;
   white-space: nowrap;
}
.sl-table tbody tr {
   border-bottom: 1px solid #eef1f6;
   transition: background .15s;
}
.sl-table tbody tr:hover { background: #f5f9ff; }
.sl-table tbody td {
   vertical-align: middle;
   padding: .65rem 1rem;
   border: none !important;
}
.sl-table tbody tr:last-child { border-bottom: none; }

/* Celda Consecutivo */
.sl-consecutivo {
   display: inline-block;
   background: var(--lp-primary);
   color: #fff;
   font-size: .8rem;
   font-weight: 700;
   letter-spacing: .06em;
   padding: .28rem .7rem;
   border-radius: 6px;
   white-space: nowrap;
   font-family: 'Montserrat', monospace;
}

/* Celda Documento */
.sl-doc-type {
   display: inline-block;
   font-size: .7rem;
   font-weight: 700;
   color: var(--lp-muted);
   text-transform: uppercase;
   letter-spacing: .05em;
   margin-bottom: .1rem;
}
.sl-doc-num {
   font-weight: 700;
   color: var(--lp-primary);
   font-size: .92rem;
   white-space: nowrap;
}

/* Celda Cliente */
.sl-client-name {
   font-weight: 600;
   color: #222;
   margin-bottom: .18rem;
   line-height: 1.3;
}
.sl-client-sub, .sl-client-contact {
   font-size: .75rem;
   color: var(--lp-muted);
   line-height: 1.5;
}
.sl-client-contact { color: #6e7d9a; }
.sl-sep { margin: 0 .25rem; opacity: .5; }

/* Celda Empresa */
.sl-empresa {
   font-size: .83rem;
   font-weight: 600;
   color: #3a4a6b;
}

/* Celda Crédito */
.sl-tipo-credito {
   display: inline-block;
   background: var(--lp-light);
   color: var(--lp-primary);
   font-size: .72rem;
   font-weight: 700;
   padding: .15rem .5rem;
   border-radius: 4px;
   margin-bottom: .2rem;
}
.sl-tipo-prima {
   background: #fff0d6;
   color: #8a5100;
}
.sl-valor {
   font-size: 1rem;
   font-weight: 700;
   color: #1a6b3c;
}
.sl-cuotas {
   font-size: .75rem;
   color: var(--lp-muted);
}
.sl-tasa {
   font-size: .72rem;
   color: #5a6473;
   margin-top: .18rem;
}
.sl-tasa .fas {
   font-size: .62rem;
   margin-right: 2px;
   opacity: .7;
}
.sl-tasa--visado {
   color: #0c5a91;
   font-weight: 600;
}

/* Documentos — iconos en cuadrícula */
.sl-docs-grid {
   display: flex;
   flex-wrap: wrap;
   gap: .3rem;
}
.sl-doc-link {
   display: inline-flex;
   align-items: center;
   gap: .25rem;
   padding: .22rem .5rem;
   border-radius: 5px;
   font-size: .72rem;
   font-weight: 600;
   background: #eef3fb;
   color: var(--lp-primary);
   text-decoration: none;
   white-space: nowrap;
   transition: background .15s, color .15s;
}
.sl-doc-link:hover { background: var(--lp-primary); color: #fff; text-decoration: none; }
.sl-doc-link--cap { background: #e8f8ef; color: #1a6b3c; }
.sl-doc-link--cap:hover { background: #1a6b3c; color: #fff; }
.sl-doc-link--firmado { background: #fff3cd; color: #856404; }
.sl-doc-link--firmado:hover { background: #856404; color: #fff; }

/* Fecha */
.sl-fecha {
   font-size: .83rem;
   color: #555;
   white-space: nowrap;
}

/* Botones de acción */
.sl-actions { display: flex; flex-direction: column; gap: .3rem; }
.sl-btn {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   padding: .28rem .7rem;
   border-radius: 5px;
   font-size: .78rem;
   font-weight: 600;
   border: none;
   cursor: pointer;
   white-space: nowrap;
   transition: opacity .15s, transform .1s;
}
.sl-btn:hover { opacity: .85; transform: translateY(-1px); }
.sl-btn-visar     { background: #007bff; color: #fff; }
.sl-btn-editar    { background: #28a745; color: #fff; text-decoration: none; }
.sl-btn-editar:hover { color: #fff; text-decoration: none; }
.sl-btn-rechazar  { background: #dc3545; color: #fff; }
.sl-btn-capacidad { background: #6c757d; color: #fff; }
.sl-btn-aprobar   { background: #28a745; color: #fff; }

/* Motivo de rechazo */
.sl-motivo-rechazo {
   font-size: .8rem;
   color: #6c1a1a;
   background: #fff5f5;
   border-left: 3px solid #dc3545;
   padding: .3rem .5rem;
   border-radius: 0 4px 4px 0;
   max-width: 260px;
   white-space: pre-wrap;
   word-break: break-word;
}

/* Estado vacío */
.sl-empty {
   text-align: center;
   padding: 3rem 1rem;
   color: var(--lp-muted);
}
.sl-empty-icon {
   font-size: 2.5rem;
   color: #28a745;
   display: block;
   margin-bottom: .75rem;
}

/* DataTables toolbar override */
.sl-dt-top, .sl-dt-bottom {
   display: flex;
   align-items: center;
   justify-content: space-between;
   padding: .6rem 1rem;
   background: #f7faff;
   border-bottom: 1px solid #eef1f6;
   flex-wrap: wrap;
   gap: .5rem;
}
.sl-dt-bottom { border-bottom: none; border-top: 1px solid #eef1f6; }
.dataTables_wrapper .dataTables_length label,
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_paginate { font-size: .82rem; }
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
   background: var(--lp-primary) !important;
   color: #fff !important;
   border-color: var(--lp-primary) !important;
   border-radius: 5px;
}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
   background: var(--lp-light) !important;
   color: var(--lp-primary) !important;
   border-color: #c4d3e8 !important;
}
/* ocultar el buscador nativo de DataTables (usamos el nuestro) */
.dataTables_wrapper .dataTables_filter { display: none; }

/* ================================================================
   MODAL PLAN DE PAGOS
   ================================================================ */
.pp-wrap { padding: 0; font-size: .875rem; }

/* ── Ficha del crédito ─────────────────────────────────────────── */
.pp-ficha {
   display: flex;
   gap: 0;
   background: var(--lp-light);
   border-bottom: 2px solid #dde3ea;
}
.pp-ficha-col {
   flex: 1;
   padding: 1rem 1.25rem;
   border-right: 1px solid #dde3ea;
}
.pp-ficha-col:last-child { border-right: none; }
.pp-ficha-col--accent {
   flex: 0 0 150px;
   background: var(--lp-primary);
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
   padding: 1rem;
   text-align: center;
}
.pp-ficha-row {
   display: flex;
   align-items: flex-start;
   gap: .7rem;
   margin-bottom: .75rem;
}
.pp-ficha-row:last-child { margin-bottom: 0; }
.pp-ficha-icon {
   font-size: .95rem;
   color: var(--lp-accent);
   margin-top: .15rem;
   width: 16px;
   text-align: center;
   flex-shrink: 0;
}
.pp-ficha-lbl {
   font-size: .68rem;
   font-weight: 700;
   text-transform: uppercase;
   letter-spacing: .05em;
   color: var(--lp-muted);
   margin-bottom: .1rem;
}
.pp-ficha-val {
   font-size: .88rem;
   font-weight: 600;
   color: #222;
   line-height: 1.3;
}
.pp-badge-consec {
   display: inline-block;
   background: var(--lp-primary);
   color: #fff;
   font-size: .78rem;
   font-weight: 700;
   letter-spacing: .06em;
   padding: .18rem .6rem;
   border-radius: 5px;
   font-family: 'Montserrat', monospace;
}
.pp-ficha-tasa-lbl {
   font-size: .68rem;
   font-weight: 700;
   text-transform: uppercase;
   letter-spacing: .06em;
   color: rgba(255,255,255,.7);
   margin-bottom: .3rem;
}
.pp-ficha-tasa-val {
   font-size: 1.6rem;
   font-weight: 800;
   color: #fff;
   line-height: 1;
}
.pp-ficha-tasa-sub {
   font-size: .7rem;
   color: rgba(255,255,255,.65);
   margin-top: .2rem;
}

/* ── Cards resumen ─────────────────────────────────────────────── */
.pp-cards-row {
   display: flex;
   gap: 0;
   border-bottom: 2px solid #dde3ea;
}
.pp-card {
   flex: 1;
   display: flex;
   align-items: center;
   gap: .75rem;
   padding: .85rem 1.1rem;
   border-right: 1px solid #dde3ea;
}
.pp-card:last-child { border-right: none; }
.pp-card-icon {
   width: 38px;
   height: 38px;
   border-radius: 8px;
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: 1rem;
   flex-shrink: 0;
   color: #fff;
}
.pp-card--blue   .pp-card-icon { background: var(--lp-accent); }
.pp-card--primary .pp-card-icon { background: var(--lp-primary); }
.pp-card--orange  .pp-card-icon { background: #f39c12; }
.pp-card--green   .pp-card-icon { background: #28a745; }
.pp-card-lbl {
   font-size: .68rem;
   font-weight: 700;
   text-transform: uppercase;
   letter-spacing: .04em;
   color: var(--lp-muted);
   margin-bottom: .12rem;
}
.pp-card-val {
   font-size: .95rem;
   font-weight: 700;
   color: #1a2a3a;
}

/* ── Callout fecha ─────────────────────────────────────────────── */
.pp-fecha-callout {
   display: flex;
   align-items: center;
   gap: .6rem;
   font-size: .8rem;
   color: var(--lp-primary);
   background: #eaf5ff;
   border-left: 3px solid var(--lp-accent);
   padding: .55rem 1.25rem;
}
.pp-fecha-icon { color: var(--lp-accent); font-size: .9rem; }

/* ── Título sección ────────────────────────────────────────────── */
.pp-section-title {
   font-size: .78rem;
   font-weight: 700;
   text-transform: uppercase;
   letter-spacing: .06em;
   color: var(--lp-primary);
   padding: .7rem 1.25rem .3rem;
   border-bottom: 1px solid #eef1f6;
}

/* ── Tabla amortización ────────────────────────────────────────── */
.pp-table-wrap { padding: 0; }
.pp-table { font-size: .82rem; margin: 0 !important; }
.pp-table thead th {
   background: var(--lp-primary);
   color: #fff;
   font-size: .74rem;
   font-weight: 600;
   text-transform: uppercase;
   letter-spacing: .03em;
   padding: .55rem .75rem;
   border: none !important;
   white-space: nowrap;
}
.pp-table tbody tr { border-bottom: 1px solid #eef1f6; }
.pp-table tbody tr:hover td { background: #f5f9ff; }
.pp-table tbody td {
   padding: .42rem .75rem;
   border: none !important;
   vertical-align: middle;
   color: #2d3a4a;
}
.pp-table tfoot td {
   background: #eef3fb;
   font-weight: 700;
   color: var(--lp-primary);
   border-top: 2px solid #c4d3e8 !important;
   border-bottom: none !important;
   border-left: none !important;
   border-right: none !important;
   padding: .5rem .75rem;
}

/* ── Nota legal ────────────────────────────────────────────────── */
.pp-nota {
   font-size: .72rem;
   color: var(--lp-muted);
   padding: .5rem 1.25rem;
   margin: 0;
   border-top: 1px solid #eef1f6;
   background: #fafbfc;
   font-style: italic;
}

/* ── Footer acciones ───────────────────────────────────────────── */
.pp-footer {
   display: flex;
   align-items: center;
   gap: .75rem;
   padding: .9rem 1.25rem;
   background: #f7faff;
   border-top: 2px solid #dde3ea;
}
.pp-btn-generar {
   display: inline-flex;
   align-items: center;
   background: var(--lp-primary);
   color: #fff;
   font-size: .875rem;
   font-weight: 700;
   padding: .55rem 1.3rem;
   border-radius: 8px;
   border: none;
   cursor: pointer;
   transition: opacity .15s, transform .1s;
}
.pp-btn-generar:hover { opacity: .88; transform: translateY(-1px); }
.pp-btn-generar:disabled { opacity: .65; cursor: default; transform: none; }
.pp-btn-imprimir {
   display: inline-flex;
   align-items: center;
   background: #17a2b8;
   color: #fff;
   font-size: .875rem;
   font-weight: 700;
   padding: .55rem 1.3rem;
   border-radius: 8px;
   border: none;
   cursor: pointer;
   transition: opacity .15s, transform .1s;
}
.pp-btn-imprimir:hover { opacity: .88; transform: translateY(-1px); }
.pp-btn-imprimir:disabled { opacity: .65; cursor: default; transform: none; }
.pp-spinner-wrap {
   display: flex;
   align-items: center;
   gap: .5rem;
   font-size: .82rem;
   color: var(--lp-muted);
}
.pp-spinner {
   width: 18px; height: 18px;
   border: 2px solid #dde3ea;
   border-top-color: var(--lp-primary);
   border-radius: 50%;
   animation: loaderSpin .7s linear infinite;
   flex-shrink: 0;
}

/* Botón plan en tabla de solicitudes */
.sl-btn-plan    { background: #17a2b8; color: #fff; }
.sl-btn-firmado { background: #fd7e14; color: #fff; }

/* ================================================================
   MODAL CAPACIDAD DE ENDEUDAMIENTO
   ================================================================ */

/* Header del modal genérico — ya usa .adm-modal-header */
.adm-modal-header {
   background: linear-gradient(135deg, var(--lp-primary) 0%, var(--lp-primary-dk) 100%);
   color: #fff;
   border-radius: 0;
   padding: 1rem 1.25rem;
}
.adm-modal-header .modal-title { color: #fff; font-weight: 700; font-size: 1rem; }
.adm-modal-header .close { color: #fff; opacity: .8; text-shadow: none; }
.adm-modal-header .close:hover { opacity: 1; }

/* Cuerpo del modal de capacidad */
.cap-body {
   padding: 1.25rem 1.5rem .5rem;
}
.cap-desc {
   font-size: .855rem;
   color: var(--lp-muted);
   background: var(--lp-light);
   border-left: 3px solid var(--lp-accent);
   border-radius: 0 6px 6px 0;
   padding: .6rem .9rem;
   margin-bottom: 1.25rem;
}

/* Zona de carga de archivo */
.cap-upload-zone {
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
   gap: .5rem;
   border: 2px dashed #c4d3e8;
   border-radius: 10px;
   background: #f7faff;
   padding: 2rem 1.5rem;
   cursor: pointer;
   transition: border-color .2s, background .2s;
   text-align: center;
   margin-bottom: 0;
}
.cap-upload-zone:hover,
.cap-upload-zone--selected {
   border-color: var(--lp-accent);
   background: #eaf5ff;
}
.cap-upload-icon {
   font-size: 2.2rem;
   color: var(--lp-accent);
   line-height: 1;
}
.cap-upload-label {
   font-size: .9rem;
   font-weight: 600;
   color: var(--lp-primary);
}
.cap-upload-hint {
   font-size: .75rem;
   color: var(--lp-muted);
}
.cap-file-name {
   font-size: .8rem;
   font-weight: 600;
   color: #1a6b3c;
   background: #d4edda;
   border-radius: 20px;
   padding: .2rem .8rem;
   max-width: 100%;
   overflow: hidden;
   text-overflow: ellipsis;
   white-space: nowrap;
}

/* Footer con botones */
.cap-footer {
   display: flex;
   justify-content: flex-end;
   gap: .6rem;
   padding: .9rem 1.5rem 1.1rem;
   border-top: 1px solid #eef1f6;
   background: #f7faff;
}
.cap-btn {
   display: inline-flex;
   align-items: center;
   padding: .45rem 1.1rem;
   border-radius: 7px;
   font-size: .855rem;
   font-weight: 600;
   border: none;
   cursor: pointer;
   transition: opacity .15s, transform .1s;
}
.cap-btn:hover { opacity: .87; transform: translateY(-1px); }
.cap-btn-cancel  { background: #e9ecef; color: #495057; }
.cap-btn-save    { background: var(--lp-primary); color: #fff; }
.cap-btn-danger  { background: #dc3545; color: #fff; }

/* Textarea en modales */
.cap-textarea {
   width: 100%;
   min-height: 110px;
   resize: vertical;
   border: 1.5px solid #c4d3e8;
   border-radius: 8px;
   padding: .65rem .9rem;
   font-size: .875rem;
   color: #333;
   background: #f7faff;
   transition: border-color .2s;
   font-family: inherit;
}
.cap-textarea:focus {
   outline: none;
   border-color: var(--lp-accent);
   background: #fff;
}
.cap-textarea.is-invalid {
   border-color: #dc3545;
}
.cap-field-error {
   font-size: .78rem;
   color: #dc3545;
   margin-top: .3rem;
   display: none;
}

/* ── Usuarios: badges de rol y estado ── */
.usr-badge {
   display: inline-flex;
   align-items: center;
   font-size: .75rem;
   font-weight: 700;
   padding: .2rem .65rem;
   border-radius: 20px;
   white-space: nowrap;
}
.usr-badge-admin { background: #e8f0fe; color: #1a3c8f; }
.usr-badge-aux   { background: #e8f4fd; color: #004884; }

.usr-estado {
   display: inline-flex;
   align-items: center;
   font-size: .78rem;
   font-weight: 600;
}
.usr-activo   { color: #1a6b3c; }
.usr-activo   .fas { font-size: .45rem; color: #28a745; }
.usr-inactivo { color: #721c24; }
.usr-inactivo .fas { font-size: .45rem; color: #dc3545; }

/* ── Usuarios: formulario de campos ── */
.usr-form-grid {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: .9rem 1.2rem;
}
@media (max-width: 576px) { .usr-form-grid { grid-template-columns: 1fr; } }

.usr-field { display: flex; flex-direction: column; gap: .2rem; }
.usr-label {
   font-size: .8rem;
   font-weight: 600;
   color: var(--lp-primary);
}
.usr-req { color: #dc3545; }
.usr-input {
   border: 1.5px solid #c4d3e8;
   border-radius: 7px;
   padding: .45rem .75rem;
   font-size: .875rem;
   color: #333;
   background: #f7faff;
   transition: border-color .2s;
   font-family: inherit;
   width: 100%;
}
.usr-input:focus {
   outline: none;
   border-color: var(--lp-accent);
   background: #fff;
}
.usr-input.is-invalid { border-color: #dc3545; }
