/* Servimos 2.0 – capa visual "Azul confianza" (ADR-001, opción B).
   Se carga después de style.css (INSPINIA) y solo cambia colores, tipografía y forma de los componentes. */

:root {
    --sv-primario: #1d4ed8;
    --sv-primario-hover: #1e40af;
    --sv-primario-suave: #dbeafe;
    --sv-primario-texto: #1e3a8a;
    --sv-menu: #0f172a;
    --sv-menu-hover: #1e293b;
    --sv-menu-activo: #172554;
    --sv-menu-texto: #cbd5e1;
    --sv-acento-menu: #60a5fa;
    --sv-exito: #15803d;
    --sv-exito-suave: #dcfce7;
    --sv-alerta: #b45309;
    --sv-alerta-suave: #fef3c7;
    --sv-peligro: #b91c1c;
    --sv-peligro-suave: #fee2e2;
    --sv-fondo: #f1f5f9;
    --sv-borde: #e2e8f0;
    --sv-texto: #1e293b;
    --sv-texto-suave: #64748b;
    --sv-radio: 8px;
}

/* Tipografía y fondo */
body, h1, h2, h3, h4, h5, h6, .btn, .form-control, .nav, .navbar {
    font-family: "Inter", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
body { color: var(--sv-texto); }
body, .gray-bg, #page-wrapper { background-color: var(--sv-fondo); }
h1, h2, h3, h4, h5 { color: var(--sv-texto); font-weight: 600; }
a { color: var(--sv-primario); }
a:hover, a:focus { color: var(--sv-primario-hover); }
.text-navy { color: var(--sv-primario) !important; }
.text-success { color: var(--sv-exito) !important; }
.text-warning { color: var(--sv-alerta) !important; }
.text-danger { color: var(--sv-peligro) !important; }
.text-info { color: var(--sv-primario) !important; }

/* Menú lateral */
.navbar-default.navbar-static-side, .navbar-static-side, body.mini-navbar .navbar-static-side { background-color: var(--sv-menu); }
.nav-header {
    background: var(--sv-menu) !important;
    border-bottom: 1px solid var(--sv-menu-hover);
}
.nav > li > a { color: var(--sv-menu-texto); font-weight: 500; }
.nav > li > a i { color: var(--sv-acento-menu); }
.navbar-default .nav > li > a:hover, .navbar-default .nav > li > a:focus { background-color: var(--sv-menu-hover); color: #fff; }
.nav > li.active, .navbar-default .nav > li.active > a {
    background: var(--sv-menu-activo);
    border-left: 4px solid var(--sv-acento-menu);
    color: #fff;
}
.nav-second-level li a { color: var(--sv-menu-texto); }
.profile-element .text-muted { color: #94a3b8 !important; }
.logo-element { background: var(--sv-menu); color: #fff; font-weight: 700; }
.v2-badge {
    display: inline-block;
    margin-top: 6px;
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--sv-primario);
    color: #fff;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .3px;
}

/* Barra superior */
.navbar-static-top, .white-bg .navbar-fixed-top { background: #fff; border-bottom: 1px solid var(--sv-borde); }
.navbar-top-links li a { color: var(--sv-texto-suave); }

/* Botones */
.btn { border-radius: var(--sv-radio); font-weight: 500; transition: background-color .15s, border-color .15s; }
.btn-primary, .btn-primary:disabled, .btn-primary.disabled {
    background-color: var(--sv-primario);
    border-color: var(--sv-primario);
    color: #fff;
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active,
.btn-primary:not(:disabled):not(.disabled):active, .show > .btn-primary.dropdown-toggle {
    background-color: var(--sv-primario-hover) !important;
    border-color: var(--sv-primario-hover) !important;
    color: #fff;
}
.btn-success { background-color: var(--sv-exito); border-color: var(--sv-exito); }
.btn-success:hover, .btn-success:focus, .btn-success:active { background-color: #166534 !important; border-color: #166534 !important; }
.btn-white, .btn-default { border-color: var(--sv-borde); color: var(--sv-texto); background: #fff; }
.btn-white:hover, .btn-default:hover { border-color: #cbd5e1; background: #f8fafc; }
.btn-outline.btn-primary { color: var(--sv-primario); background: transparent; }
.btn-outline.btn-primary:hover { color: #fff; }
.btn-outline.btn-success { color: var(--sv-exito); background: transparent; }
.btn-outline.btn-success:hover { color: #fff; background: var(--sv-exito); }
.btn-outline.btn-warning { color: var(--sv-alerta); border-color: #f59e0b; background: transparent; }
.btn-outline.btn-warning:hover { color: #fff; background: #d97706; }
.btn-outline.btn-danger { color: var(--sv-peligro); background: transparent; }
.btn-outline.btn-danger:hover { color: #fff; background: var(--sv-peligro); }
/* Los enlaces dentro de botones de contorno heredan el color del botón */
.btn-outline a, .btn-outline a:hover { color: inherit; text-decoration: none; }

/* Etiquetas e indicadores */
.label-primary, .badge-primary, .navy-bg, .bg-primary { background-color: var(--sv-primario) !important; color: #fff; }
.label-success, .badge-success { background-color: var(--sv-exito); color: #fff; }
.label-warning, .badge-warning { background-color: #f59e0b; color: #fff; }
.label, .badge { border-radius: 999px; font-weight: 600; }
.progress-bar { background-color: var(--sv-primario); }
.progress-bar-danger { background-color: var(--sv-peligro); }

/* Tarjetas (ibox) y widgets */
.ibox, .ibox-title, .ibox-content { border-color: var(--sv-borde); }
.ibox {
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid var(--sv-borde);
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}
.ibox-title { border-top: 0; background: #fff; padding-top: 14px; }
.ibox-title h5 { font-weight: 600; color: var(--sv-texto); }
.ibox-content { border-top: 1px solid var(--sv-borde); }
.widget { border-radius: 12px; }
.lazur-bg, .blue-bg { background-color: var(--sv-primario) !important; color: #fff; }
.yellow-bg { background-color: #f59e0b !important; }
.red-bg { background-color: var(--sv-peligro) !important; }
.stat-percent { font-weight: 600; }

/* Tablas */
.table > thead > tr > th, .table thead th {
    background: #f8fafc;
    color: var(--sv-texto-suave);
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .3px;
    border-bottom: 1px solid var(--sv-borde);
}
.table td, .table th { border-color: var(--sv-borde) !important; vertical-align: middle; }
.table-hover tbody tr:hover { background-color: #eff6ff; }
.table-striped tbody tr:nth-of-type(odd) { background-color: #fafcff; }
.page-item.active .page-link { background-color: var(--sv-primario); border-color: var(--sv-primario); }
.page-link { color: var(--sv-primario); }
.dataTables_wrapper .dt-buttons .btn, .html5buttons .dt-button { border-radius: var(--sv-radio); }

/* Formularios */
.form-control {
    border-radius: var(--sv-radio);
    border-color: #cbd5e1;
}
.form-control:focus {
    border-color: var(--sv-primario);
    box-shadow: 0 0 0 3px rgba(29, 78, 216, .15);
}
.input-group-addon { border-color: #cbd5e1; border-radius: var(--sv-radio) 0 0 var(--sv-radio); }

/* Pie de página */
.footer { background: #fff; border-top: 1px solid var(--sv-borde); color: var(--sv-texto-suave); }
.footer strong { color: var(--sv-texto); }

/* ===== Login 2.0 ===== */
body.login-v2 {
    background: var(--sv-menu);
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 16px;
}
.login-v2 .login-tarjeta {
    display: flex;
    width: 100%;
    max-width: 880px;
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 20px 50px rgba(0, 0, 0, .35);
}
.login-v2 .login-marca {
    flex: 1 1 45%;
    background: var(--sv-primario);
    color: #fff;
    padding: 40px 32px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.login-v2 .login-marca h1 { color: #fff; font-size: 30px; font-weight: 700; margin: 0 0 8px; }
.login-v2 .login-marca p { color: #dbeafe; font-size: 15px; line-height: 1.6; }
.login-v2 .login-marca .v2-badge { background: #fff; color: var(--sv-primario); font-size: 11px; }
.login-v2 .login-marca img { width: 100%; border-radius: 12px; margin: 24px 0; opacity: .95; }
.login-v2 .login-form { flex: 1 1 55%; padding: 48px 40px; }
.login-v2 .login-form h3 { font-size: 22px; margin-bottom: 4px; }
.login-v2 .login-form .subtitulo { color: var(--sv-texto-suave); margin-bottom: 24px; }
.login-v2 .login-form label { font-weight: 600; font-size: 13px; color: var(--sv-texto); }
.login-v2 .login-form .form-control { height: 44px; }
.login-v2 .login-form .btn-primary { height: 44px; font-size: 15px; }
.login-v2 .login-ayuda { margin-top: 20px; font-size: 13px; color: var(--sv-texto-suave); }
.login-v2 .login-pie { margin-top: 32px; font-size: 12px; color: #94a3b8; }
@media (max-width: 767px) {
    .login-v2 .login-tarjeta { flex-direction: column; }
    .login-v2 .login-marca { padding: 24px; }
    .login-v2 .login-marca img { display: none; }
    .login-v2 .login-form { padding: 28px 24px; }
}

/* Etiquetas informativas y barra de carga */
.label-info, .badge-info { background-color: #0284c7; color: #fff; }
.label-danger, .badge-danger { background-color: var(--sv-peligro); color: #fff; }
.pace .pace-progress { background: var(--sv-primario); }
.border-bottom.white-bg, #page-wrapper .border-bottom { border-color: var(--sv-borde) !important; }

/* Indicadores sin número (la barra superior en páginas que no los calculan) */
.label:empty, .badge:empty { display: none; }

/* Asistente por pasos (solicitud de préstamo) y deslizadores */
.wizard > .steps .current a, .wizard > .steps .current a:hover, .wizard > .steps .current a:active,
.wizard > .actions a, .wizard > .actions a:hover, .wizard > .actions a:active {
    background: var(--sv-primario);
    border-radius: var(--sv-radio);
}
.wizard > .steps .done a, .wizard > .steps .done a:hover, .wizard > .steps .done a:active { background: #93c5fd; color: var(--sv-primario-texto); }
.wizard > .steps a, .wizard > .actions .disabled a { border-radius: var(--sv-radio); }
.wizard > .content { border-radius: 12px; background: #f8fafc; }
.irs--flat .irs-bar, .irs--flat .irs-handle > i:first-child, .irs--flat .irs-from, .irs--flat .irs-to, .irs--flat .irs-single { background-color: var(--sv-primario); }
.irs--flat .irs-from:before, .irs--flat .irs-to:before, .irs--flat .irs-single:before { border-top-color: var(--sv-primario); }
