/* ============================================================================
   PAMEH · Modern UI skin  (capa aditiva, no destructiva)
   ----------------------------------------------------------------------------
   Se carga DESPUES de layout-improvements.css y del tema Blankon.
   No se elimina ningun elemento del DOM ni se edita el CSS core de Blankon.
   Paleta institucional: azul #19438c · blanco · dorado #ad8411
   Reversible: quitar el <link> en _Layout.cshtml (y la entrada en PAMEH.csproj).
   ============================================================================ */

/* ----------------------------------------------------------------------------
   1. TOKENS
   ---------------------------------------------------------------------------- */
:root {
  --sefin-primary: #19438c;
  --sefin-secondary: #234f9f;
  --sefin-primary-dark: #0f2f66;
  --sefin-primary-050: rgba(25, 67, 140, 0.06);
  --sefin-primary-100: rgba(25, 67, 140, 0.12);
  --sefin-gold: #ad8411;
  --sefin-gold-soft: #c99a2e;

  --app-bg: #f4f6fb;
  --surface: #ffffff;
  --surface-alt: #f7f9fc;
  --border: #e6e9f0;
  --border-strong: #d6dbe6;

  --text: #1f2733;
  --text-muted: #6b7480;

  --radius: 10px;
  --radius-sm: 6px;

  --shadow-sm: 0 1px 2px rgba(16, 42, 90, 0.06), 0 1px 3px rgba(16, 42, 90, 0.05);
  --shadow-md: 0 6px 20px rgba(16, 42, 90, 0.10);
  --focus-ring: 0 0 0 3px rgba(25, 67, 140, 0.18);

  --sidebar-bg: #19438c;
  --sidebar-bg-2: #143a7c;
  --sidebar-bg-3: #0f2f66;
  --sidebar-text: rgba(255, 255, 255, 0.82);
  --sidebar-text-strong: #ffffff;
  --sidebar-border: rgba(255, 255, 255, 0.10);
}

/* ----------------------------------------------------------------------------
   2. BASE / TIPOGRAFIA
   ---------------------------------------------------------------------------- */
body {
  background-color: var(--app-bg);
  color: var(--text);
  font-family: "Open Sans", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-weight: 600;
  color: var(--text);
  letter-spacing: 0;
}

a {
  color: var(--sefin-primary);
}
a:hover,
a:focus {
  color: var(--sefin-primary-dark);
}

hr {
  border-top-color: var(--border);
}

::selection {
  background: var(--sefin-primary-100);
}

/* Scrollbars discretos (webkit) */
::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}
::-webkit-scrollbar-thumb {
  background: #c7cede;
  border-radius: 8px;
  border: 2px solid var(--app-bg);
}
::-webkit-scrollbar-thumb:hover {
  background: #aab4ca;
}
::-webkit-scrollbar-track {
  background: transparent;
}

/* ----------------------------------------------------------------------------
   3. HEADER
   ---------------------------------------------------------------------------- */
#header {
  z-index: 300;
}

.navbar-toolbar,
#header .header-right,
#header .navbar-toolbar.navbar-primary {
  background-color: var(--surface) !important;
  border-bottom: 1px solid var(--border) !important;
  box-shadow: var(--shadow-sm);
}

#header .navbar-header {
  background-color: var(--sefin-primary) !important;
}

/* Logo: acotado por altura para que nunca desborde el header (cualquier ancho) */
#header .navbar-header img {
  width: auto !important;
  max-width: 190px !important;
  max-height: 64px !important;
  object-fit: contain;
}
#header .navbar-header > div {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Nombre de la app */
.app-name {
  color: var(--sefin-primary) !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
}
.app-name span {
  color: var(--text-muted) !important;
  font-size: 12px !important;
  font-style: normal !important;
  font-weight: 600 !important;
}
.app-name-container {
  margin-top: 12px !important;
}

/* Boton minimizar sidebar (hamburguesa desktop) */
.navbar-toolbar .navbar-left .navbar-minimize a {
  background-color: var(--sefin-primary-050) !important;
  color: var(--sefin-primary) !important;
  border-radius: var(--radius-sm);
  transition: background-color 0.12s ease;
}
.navbar-toolbar .navbar-left .navbar-minimize a:hover {
  background-color: var(--sefin-primary-100) !important;
}
.navbar-primary .navbar-left .navbar-minimize a i {
  color: var(--sefin-primary) !important;
}

/* Perfil */
.navbar-primary .navbar-right .navbar-profile > a .meta .text,
.navbar-primary .navbar-right .navbar-profile > a .meta .caret,
.navbar-toolbar .navbar-right .dropdown > a,
.navbar-toolbar .navbar-right .dropdown > a > i {
  color: var(--sefin-primary) !important;
}
.navbar-toolbar .navbar-right .dropdown > a:hover,
.navbar-toolbar .navbar-right .dropdown > a:focus {
  background-color: var(--sefin-primary-050) !important;
  color: var(--sefin-primary-dark) !important;
}

.navbar-toolbar .navbar-right .dropdown-menu {
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-sm) !important;
  box-shadow: var(--shadow-md) !important;
  padding: 6px 0 !important;
  margin-top: 6px !important;
}
.navbar-toolbar .navbar-right .dropdown-menu .dropdown-header {
  background-color: var(--surface-alt) !important;
  color: var(--text-muted) !important;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 10px;
  letter-spacing: 0.4px;
}
.navbar-toolbar .navbar-right .dropdown-menu li > a {
  padding: 8px 16px !important;
  color: var(--text) !important;
}
.navbar-toolbar .navbar-right .dropdown-menu li > a:hover {
  background-color: var(--sefin-primary-050) !important;
  color: var(--sefin-primary) !important;
}

/* Boton "Ingresar" (dorado) */
.btn-login {
  background-color: var(--sefin-gold) !important;
  border: 1px solid var(--sefin-gold) !important;
  color: #ffffff !important;
  border-radius: var(--radius-sm) !important;
  font-weight: 600 !important;
  box-shadow: var(--shadow-sm);
  transition: background-color 0.12s ease, box-shadow 0.12s ease;
}
.btn-login:hover,
.btn-login:focus {
  background-color: var(--sefin-gold-soft) !important;
  border-color: var(--sefin-gold-soft) !important;
  color: #ffffff !important;
  box-shadow: var(--shadow-md);
}

/* Back-to-top */
#back-top {
  background-color: var(--sefin-primary) !important;
}
#back-top:hover {
  background-color: var(--sefin-primary-dark) !important;
}

/* ----------------------------------------------------------------------------
   4. SIDEBAR IZQUIERDO  (azul profundo institucional)
   ---------------------------------------------------------------------------- */
#sidebar-left,
#sidebar-left:after {
  background-color: var(--sidebar-bg) !important;
}
#sidebar-left {
  box-shadow: 2px 0 14px rgba(16, 42, 90, 0.10) !important;
}

/* Bloque de perfil / selector de perfil-operacion */
#sidebar-left .sidebar-content {
  border-bottom: 1px solid var(--sidebar-border);
}
#sidebar-left .sidebar-content .media-heading,
#sidebar-left .sidebar-content .media-heading span,
#sidebar-left .sidebar-content small {
  color: var(--sidebar-text-strong) !important;
}
#sidebar-left .sidebar-content .avatar img,
#sidebar-left.sidebar-circle .sidebar-content img,
#sidebar-left.sidebar-rounded .sidebar-content img,
#sidebar-left.sidebar-box .sidebar-content img {
  border: 2px solid rgba(255, 255, 255, 0.35) !important;
}
#sidebar-left .btn-group.btn-block > button.dropdown-toggle,
#sidebar-left button.btn.btn-sm.dropdown-toggle {
  background-color: rgba(255, 255, 255, 0.10) !important;
  border: 1px solid var(--sidebar-border) !important;
  color: #ffffff !important;
  border-radius: var(--radius-sm) !important;
  font-weight: 600;
}
#sidebar-left .btn-group.btn-block > button.dropdown-toggle:hover {
  background-color: rgba(255, 255, 255, 0.18) !important;
}

/* Encabezados de categoria del menu */
.sidebar-menu > li.sidebar-category {
  color: rgba(255, 255, 255, 0.55) !important;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  padding: 0px 16px 0px;
}
.sidebar-menu > li.sidebar-category span,
.sidebar-menu > li.sidebar-category .pull-right i {
  color: rgba(255, 255, 255, 0.55) !important;
}

/* Items nivel 1 */
.sidebar-menu > li > a,
.sidebar-menu ul li a {
  color: var(--sidebar-text) !important;
  transition: background-color 0.12s ease, color 0.12s ease;
}
.sidebar-menu > li > a > span,
.sidebar-menu > li > a > .text,
.sidebar-menu > li > a > .icon i {
  color: var(--sidebar-text) !important;
}
.sidebar-menu > li > a:hover {
  background-color: rgba(255, 255, 255, 0.08) !important;
}
.sidebar-menu > li > a:hover span,
.sidebar-menu > li > a:hover .text,
.sidebar-menu > li > a:hover .icon > i,
.sidebar-menu > li > a:hover .arrow {
  color: var(--sidebar-text-strong) !important;
}

/* Item activo -> acento dorado */
.sidebar-menu > li.active,
.sidebar-menu > li.submenu.active {
  background-color: rgba(255, 255, 255, 0.10) !important;
}
.sidebar-menu > li.active > a {
  box-shadow: inset 3px 0 0 var(--sefin-gold);
}
.sidebar-menu > li.active > a span,
.sidebar-menu > li.active > a .text,
.sidebar-menu > li.active > a .arrow,
.sidebar-menu > li.active > a > .icon i,
.sidebar-menu > li.active .icon {
  color: var(--sidebar-text-strong) !important;
  text-shadow: none !important;
}

/* Submenus (todos los niveles) */
.sidebar-menu ul,
.sidebar-menu > li > ul,
.sidebar-menu > li > ul > li > ul,
.sidebar-menu > li > ul > li > ul > li > ul,
.sidebar-menu > li > ul > li > ul > li > ul > li > ul {
  background-color: var(--sidebar-bg-2) !important;
}
.sidebar-menu > li > ul > li,
.sidebar-menu ul li {
  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
}
.sidebar-menu > li > ul > li > a:hover,
.sidebar-menu ul li > a:hover,
.sidebar-menu > li > ul > li > ul > li > a:hover,
.sidebar-menu > li > ul > li > ul > li > ul > li > a:hover {
  background-color: var(--sidebar-bg-3) !important;
  color: var(--sidebar-text-strong) !important;
}
.sidebar-menu > li > ul > li.active,
.sidebar-menu > li > ul > li.active.submenu > a {
  background-color: var(--sidebar-bg-3) !important;
}
.sidebar-menu > li > ul > li.active > a:before,
.sidebar-menu ul li.active > a:before {
  color: var(--sefin-gold) !important;
}
.sidebar-menu > li:after,
.sidebar-menu > li > ul:after,
.sidebar-menu ul li:after {
  background-color: rgba(255, 255, 255, 0.18) !important;
  border-left-color: rgba(255, 255, 255, 0.18) !important;
}
.sidebar-menu > li > a > .count {
  background-color: var(--sefin-gold) !important;
  color: #fff !important;
}

/* Footer del sidebar */
.sidebar-footer {
  background-color: var(--sidebar-bg-3) !important;
  border-top: 1px solid var(--sidebar-border) !important;
}
.sidebar-footer a,
.sidebar-footer a i {
  color: rgba(255, 255, 255, 0.7) !important;
}
.sidebar-footer a:hover,
.sidebar-footer a:hover i {
  color: #ffffff !important;
}

/* Rail colapsado (tablet 769-1024 / minimize) : flyout claro y legible */
body.page-sidebar-minimize #sidebar-left .sidebar-menu > li:hover > a,
body.page-sidebar-minimize-auto #sidebar-left .sidebar-menu > li:hover > a {
  background-color: var(--sidebar-bg-3) !important;
}
body.page-sidebar-minimize #sidebar-left .sidebar-menu > li:hover > ul,
body.page-sidebar-minimize-auto #sidebar-left .sidebar-menu > li:hover > ul {
  background-color: var(--sidebar-bg-2) !important;
  box-shadow: var(--shadow-md);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}
body.page-sidebar-minimize #header .navbar-minimize > a,
body.page-sidebar-minimize-auto #header .navbar-minimize > a {
  background-color: var(--sefin-primary) !important;
}

/* ----------------------------------------------------------------------------
   5. SIDEBAR DERECHO (panel de ajustes de la plantilla)
   ---------------------------------------------------------------------------- */
#sidebar-right:after,
#sidebar-right .panel .panel-heading,
#sidebar-right .panel .panel-heading .nav-tabs li a,
#sidebar-right .panel .panel-heading .nav-tabs li.active a,
#sidebar-right .panel .panel-body,
#sidebar-right .sidebar-menu > li > ul,
#sidebar-right .media-list,
#sidebar-right .media-list .media:hover {
  background-color: #12233f !important;
}

/* ----------------------------------------------------------------------------
   6. AREA DE CONTENIDO / PANELES
   ---------------------------------------------------------------------------- */
#page-content {
  background-color: var(--app-bg) !important;
}

.footer-content {
  /* background-color: transparent !important; */
  color: var(--text-muted) !important;
  border-top: 1px solid var(--border) !important;
}
.footer-content a {
  color: var(--sefin-primary) !important;
}

/* Panel principal del layout */
.body-content-app .panel-app,
.panel-app {
  background-color: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  box-shadow: var(--shadow-sm) !important;
}
.body-content-app .panel-app .panel-heading-app,
.panel-heading-app {
  background-color: var(--surface) !important;
  border-bottom: 1px solid var(--border) !important;
  border-radius: var(--radius) var(--radius) 0 0 !important;
  padding: 16px 22px !important;
}
.body-content-app .panel-app .panel-body-app,
.panel-body-app {
  background-color: var(--surface) !important;
  padding: 22px !important;
  border-radius: 0 0 var(--radius) var(--radius);
}

/* Paneles Bootstrap dentro del contenido */
#page-content .panel,
.panel-body-app .panel {
  background-color: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  margin-bottom: 20px;
}
#page-content .panel > .panel-heading,
.panel-body-app .panel > .panel-heading {
  background-color: var(--surface-alt);
  background-image: none;
  border-bottom: 1px solid var(--border);
  border-radius: var(--radius) var(--radius) 0 0;
  padding: 14px 18px;
  color: var(--text);
}
#page-content .panel > .panel-heading .panel-title,
.panel-body-app .panel > .panel-heading .panel-title,
.panel-title {
  color: var(--sefin-primary);
  font-weight: 600;
  font-size: 15px;
}
#page-content .panel-default > .panel-heading,
.panel-body-app .panel-default > .panel-heading {
  color: var(--text);
}
#page-content .panel > .panel-footer,
.panel-body-app .panel > .panel-footer {
  background-color: var(--surface-alt);
  border-top: 1px solid var(--border);
}

/* Paneles "de color" -> franja superior sutil en vez de relleno pesado */
#page-content .panel-primary,
#page-content .panel-info,
#page-content .panel-success,
#page-content .panel-warning {
  border-top: 3px solid var(--sefin-primary);
}
#page-content .panel-primary > .panel-heading,
#page-content .panel-info > .panel-heading,
#page-content .panel-success > .panel-heading,
#page-content .panel-warning > .panel-heading {
  background-color: var(--surface-alt);
  color: var(--text);
  border-color: var(--border);
}
#page-content .panel-warning { border-top-color: var(--sefin-gold); }
#page-content .panel-danger  { border-top: 3px solid #c0392b; }

/* well */
.well {
  background-color: var(--surface-alt);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  box-shadow: none;
}

/* ----------------------------------------------------------------------------
   7. BOTONES  (paleta azul / dorado; rojo solo destructivo)
   ---------------------------------------------------------------------------- */
.btn {
  border-radius: var(--radius-sm);
  font-weight: 600;
  text-transform: none;
  transition: background-color 0.12s ease, border-color 0.12s ease,
    box-shadow 0.12s ease, color 0.12s ease;
}
.btn:focus,
.btn:active:focus,
.btn.active:focus {
  outline: none;
  box-shadow: var(--focus-ring);
}

/* Accion primaria (btn-success es el "Guardar" de facto + btn-primary) */
.btn-success,
.btn-primary,
.bg-primary.btn,
button.bg-primary,
button.bg-success {
  background-color: var(--sefin-primary) !important;
  border-color: var(--sefin-primary) !important;
  color: #ffffff !important;
}
.btn-success:hover, .btn-success:focus, .btn-success:active,
.btn-success.active, .open > .dropdown-toggle.btn-success,
.btn-primary:hover, .btn-primary:focus, .btn-primary:active,
.btn-primary.active, .open > .dropdown-toggle.btn-primary,
button.bg-primary:hover, button.bg-success:hover {
  background-color: var(--sefin-primary-dark) !important;
  border-color: var(--sefin-primary-dark) !important;
  color: #ffffff !important;
}
.btn-success[disabled],
.btn-primary[disabled],
.btn-success.disabled,
.btn-primary.disabled {
  background-color: #93a7c8 !important;
  border-color: #93a7c8 !important;
  opacity: 1;
}

/* Secundario / "Cerrar" */
.btn-default {
  background-color: var(--surface) !important;
  border-color: var(--border-strong) !important;
  color: var(--text) !important;
}
.btn-default:hover,
.btn-default:focus,
.btn-default:active,
.btn-default.active {
  background-color: var(--surface-alt) !important;
  border-color: #c2c9d6 !important;
  color: var(--sefin-primary) !important;
}

/* Info -> azul claro */
.btn-info {
  background-color: var(--sefin-secondary) !important;
  border-color: var(--sefin-secondary) !important;
  color: #fff !important;
}
.btn-info:hover, .btn-info:focus, .btn-info:active, .btn-info.active {
  background-color: var(--sefin-primary) !important;
  border-color: var(--sefin-primary) !important;
}

/* Warning -> dorado */
.btn-warning {
  background-color: var(--sefin-gold) !important;
  border-color: var(--sefin-gold) !important;
  color: #fff !important;
}
.btn-warning:hover, .btn-warning:focus, .btn-warning:active, .btn-warning.active {
  background-color: var(--sefin-gold-soft) !important;
  border-color: var(--sefin-gold-soft) !important;
  color: #fff !important;
}

/* Danger -> se mantiene rojo (accion destructiva) */
.btn-danger {
  background-color: #c0392b !important;
  border-color: #c0392b !important;
  color: #fff !important;
}
.btn-danger:hover, .btn-danger:focus, .btn-danger:active, .btn-danger.active {
  background-color: #a93226 !important;
  border-color: #a93226 !important;
}

.btn-link {
  color: var(--sefin-primary) !important;
}
.btn-link:hover {
  color: var(--sefin-primary-dark) !important;
}

/* Botones "outline" que la plantilla trae */
.btn-inverse {
  background-color: var(--sefin-primary) !important;
  border-color: var(--sefin-primary) !important;
  color: #fff !important;
}

/* Anchos fijos existentes */
.btn-guardar { min-width: 97px; }
.btn-cerrar  { min-width: 97px; }

/* ----------------------------------------------------------------------------
   8. FORMULARIOS
   ---------------------------------------------------------------------------- */
.form-control {
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  box-shadow: none;
  color: var(--text);
  transition: border-color 0.12s ease, box-shadow 0.12s ease;
}
.form-control:focus {
  border-color: var(--sefin-primary);
  box-shadow: var(--focus-ring);
}
.form-control::-moz-placeholder { color: #9aa3b2; }
.form-control:-ms-input-placeholder { color: #9aa3b2; }
.form-control::-webkit-input-placeholder { color: #9aa3b2; }
.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
  background-color: var(--surface-alt);
  color: var(--text-muted);
}

label,
.control-label {
  color: var(--text) !important;
  font-weight: 600;
}
.form-horizontal .control-label {
  text-align: left;
}

.input-group-addon {
  background-color: var(--surface-alt);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  color: var(--text-muted);
}

.help-block {
  color: var(--text-muted);
}

/* Estados de validacion */
.has-error .form-control {
  border-color: #c0392b;
}
.has-error .form-control:focus {
  box-shadow: 0 0 0 3px rgba(192, 57, 43, 0.15);
}
.has-error .control-label,
.has-error .help-block {
  color: #c0392b !important;
}
.has-success .form-control {
  border-color: #2e7d32;
}
.ng-invalid.ng-touched.form-control,
.ng-submitted .ng-invalid.form-control {
  border-color: #c0392b;
}

/* Checkbox / radio de la plantilla */
.ckbox input[type="checkbox"]:checked + label:before,
.rdio input[type="radio"]:checked + label:before {
  background-color: var(--sefin-primary);
  border-color: var(--sefin-primary);
}

/* ui-select / select2 (directiva select-search) */
.ui-select-bootstrap .ui-select-match,
.ui-select-toggle,
.ui-select-container .select2-choice,
.select2-container .select2-choice {
  border: 1px solid var(--border-strong) !important;
  border-radius: var(--radius-sm) !important;
  box-shadow: none !important;
  background-image: none !important;
  background-color: var(--surface) !important;
  color: var(--text) !important;
}
.ui-select-container.open .ui-select-toggle,
.ui-select-container .ui-select-toggle:focus {
  border-color: var(--sefin-primary) !important;
  box-shadow: var(--focus-ring) !important;
}
.ui-select-choices-row.active > span,
.ui-select-choices-row.active > a,
.select2-results .select2-highlighted {
  background-color: var(--sefin-primary) !important;
  color: #fff !important;
}
.ui-select-bootstrap .ui-select-choices-row.active > .ui-select-choices-row-inner {
  background-color: var(--sefin-primary) !important;
  color: #fff !important;
}

/* angucomplete-alt */
.angucomplete-holder .angucomplete-dropdown {
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-sm) !important;
  box-shadow: var(--shadow-md) !important;
}
.angucomplete-row.angucomplete-selected-row,
body .angucomplete-selected-row {
  background-color: var(--sefin-primary) !important;
  color: #fff !important;
}

/* ----------------------------------------------------------------------------
   9. TABLAS + DATATABLES
   ---------------------------------------------------------------------------- */
.table {
  color: var(--text);
}
.table > thead > tr > th {
  background-color: var(--surface-alt);
  color: var(--sefin-primary);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.2px;
  text-transform: uppercase;
  border-bottom: 2px solid var(--sefin-primary) !important;
  vertical-align: middle;
}
.table > tbody > tr > td,
.table > tbody > tr > th {
  border-top: 1px solid var(--border);
  vertical-align: middle;
}
.table-striped > tbody > tr:nth-of-type(odd) {
  background-color: var(--surface-alt);
}
.table-hover > tbody > tr:hover {
  background-color: #eef3fb;
}
.table-bordered,
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > td {
  border-color: var(--border);
}
.panel > .table,
.panel > .table-responsive > .table {
  margin-bottom: 0;
}

/* DataTables */
.dataTables_wrapper .dataTables_length select,
.dataTables_wrapper .dataTables_filter input {
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  padding: 4px 8px;
  box-shadow: none;
}
.dataTables_wrapper .dataTables_filter input:focus {
  border-color: var(--sefin-primary);
  box-shadow: var(--focus-ring);
  outline: none;
}
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter {
  color: var(--text-muted);
}
.dataTables_wrapper .dataTables_paginate .paginate_button {
  border-radius: var(--radius-sm) !important;
  border: 1px solid transparent !important;
  color: var(--sefin-primary) !important;
  padding: 5px 10px;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
  background: var(--sefin-primary) !important;
  border-color: var(--sefin-primary) !important;
  color: #fff !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
  background: var(--sefin-primary-050) !important;
  border-color: var(--border) !important;
  color: var(--sefin-primary-dark) !important;
}
table.dataTable thead .sorting_asc,
table.dataTable thead .sorting_desc {
  color: var(--sefin-primary);
}

/* ----------------------------------------------------------------------------
   10. UI-GRID
   ---------------------------------------------------------------------------- */
.ui-grid {
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-sm);
  color: var(--text);
  font-size: 13px;
}
.ui-grid-top-panel,
.ui-grid-header,
.ui-grid-header-cell,
.ui-grid-header-viewport,
.ui-grid-menu-button {
  background: var(--surface-alt) !important;
  background-image: none !important;
  color: var(--sefin-primary) !important;
  font-weight: 700;
  border-color: var(--border) !important;
}
.ui-grid-header-cell {
  border-bottom: 2px solid var(--sefin-primary) !important;
}
.ui-grid-header-cell .ui-grid-cell-contents {
  /* white-space: normal; */
  line-height: 1.3;
}
/* .ui-grid prefijo -> gana a los bloques <style> embebidos en varias vistas
   (p. ej. DetalleOC / preAutorizar usan #d8dee2 para filas pares) */
.ui-grid .ui-grid-row:nth-child(even) .ui-grid-cell,
.ui-grid-row:nth-child(even) .ui-grid-cell {
  background-color: var(--surface);
}
.ui-grid .ui-grid-row:nth-child(odd) .ui-grid-cell,
.ui-grid-row:nth-child(odd) .ui-grid-cell {
  background-color: var(--surface-alt);
}
.ui-grid .ui-grid-row:hover .ui-grid-cell,
.ui-grid-row:hover .ui-grid-cell {
  background-color: #eef3fb !important;
}
.ui-grid-row.ui-grid-row-selected > [ui-grid-row] > .ui-grid-cell,
.ui-grid-row .ui-grid-cell.ui-grid-cell-focus {
  background-color: var(--sefin-primary-100) !important;
}
.ui-grid-cell,
.ui-grid-cell-contents {
  border-color: var(--border) !important;
}
.ui-grid-cell-contents {
  padding: 6px 8px;
}
.ui-grid-pager-panel {
  background: var(--surface-alt) !important;
  border-top: 1px solid var(--border);
}
.ui-grid-pager-row-count-picker select,
.ui-grid-filter-input {
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
}
.ui-grid-pager-control button {
  border-radius: var(--radius-sm);
}
.ui-grid-pager-control button:hover {
  border-color: var(--sefin-primary);
  color: var(--sefin-primary);
}
.ui-grid-menu-inner {
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-md) !important;
}
.ui-grid-menu-item:hover {
  background: var(--sefin-primary-050) !important;
  color: var(--sefin-primary-dark) !important;
}

/* Helpers existentes */
.grid { width: 100%; }

/* ----------------------------------------------------------------------------
   11. NAV TABS / PILLS
   ---------------------------------------------------------------------------- */
.nav-tabs {
  border-bottom: 1px solid var(--border);
}
.nav-tabs > li > a {
  border: none;
  border-radius: 0;
  color: var(--text-muted);
  font-weight: 600;
  margin-right: 2px;
  border-bottom: 2px solid transparent;
}
.nav-tabs > li > a:hover,
.nav-tabs > li > a:focus {
  background-color: var(--sefin-primary-050);
  border-color: transparent transparent var(--border-strong);
  color: var(--sefin-primary);
}
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
  background-color: transparent;
  border: none;
  border-bottom: 2px solid var(--sefin-primary);
  color: var(--sefin-primary);
}
.nav-pills > li.active > a,
.nav-pills > li.active > a:hover,
.nav-pills > li.active > a:focus {
  background-color: var(--sefin-primary);
  color: #fff;
  border-radius: var(--radius-sm);
}
.tab-content {
  padding-top: 16px;
}

/* ----------------------------------------------------------------------------
   12. MODALES / DIALOGOS
   ---------------------------------------------------------------------------- */
.modal-content {
  border: none;
  border-radius: var(--radius);
  box-shadow: 0 18px 50px rgba(16, 42, 90, 0.28);
}
.modal-header {
  border-bottom: 1px solid var(--border);
  padding: 16px 22px;
}
.modal-header .modal-title,
.modal-header h4,
#layoutModalTitulo {
  color: var(--sefin-primary);
  font-weight: 600;
}
.modal-header .close {
  color: var(--text-muted);
  opacity: 0.7;
  text-shadow: none;
}
.modal-header .close:hover {
  color: var(--text);
  opacity: 1;
}
.modal-body {
  padding: 22px;
}
.modal-footer {
  border-top: 1px solid var(--border);
  padding: 14px 22px;
}
.modal-backdrop.in {
  opacity: 0.45;
}

/* Cabeceras de dialogo "de color" -> azul */
.modal-primary .modal-header,
.modal-header.dialog-header-confirm,
.dialog-header-confirm {
  background-color: var(--sefin-primary) !important;
  border-bottom: none !important;
}
.modal-primary .modal-header .modal-title,
.modal-primary .modal-header .close,
.modal-header.dialog-header-confirm,
.modal-header.dialog-header-confirm .close,
.dialog-header-confirm,
.dialog-header-confirm .close {
  color: #ffffff !important;
  opacity: 1;
}

/* angular-dialog-service */
.dialogs .modal-header {
  background-color: var(--sefin-primary) !important;
  color: #fff !important;
}
.dialogs .modal-header .close { color: #fff !important; }
.dialogs .modal-body i.fa,
.dialogs .modal-body .glyphicon {
  color: var(--sefin-primary);
}

/* bootbox */
.bootbox.modal .modal-header {
  background-color: var(--sefin-primary);
  color: #fff;
}
.bootbox.modal .modal-header .modal-title { color: #fff; }

/* ----------------------------------------------------------------------------
   13. LABELS / BADGES / ALERTS / PAGINATION / DROPDOWN / PROGRESS
   ---------------------------------------------------------------------------- */
.label,
.badge {
  border-radius: var(--radius-sm);
  font-weight: 600;
  padding: 0.28em 0.6em;
}
.label-primary,
.label-info { background-color: var(--sefin-primary); }
.label-warning { background-color: var(--sefin-gold); }
.label-default { background-color: #8a93a3; }
.badge { background-color: var(--sefin-primary); }

.alert {
  border: 1px solid var(--border);
  border-left-width: 4px;
  border-radius: var(--radius-sm);
}
.alert-success { border-left-color: #2e7d32; background-color: #eef7ee; color: #235c26; }
.alert-info    { border-left-color: var(--sefin-primary); background-color: var(--sefin-primary-050); color: var(--sefin-primary-dark); }
.alert-warning { border-left-color: var(--sefin-gold); background-color: #fbf3e2; color: #7a5c0d; }
.alert-danger  { border-left-color: #c0392b; background-color: #fcecea; color: #8f271c; }

.pagination > li > a,
.pagination > li > span {
  color: var(--sefin-primary);
}
.pagination > .active > a,
.pagination > .active > a:hover,
.pagination > .active > a:focus,
.pagination > .active > span {
  background-color: var(--sefin-primary);
  border-color: var(--sefin-primary);
}
.pagination > li > a:hover {
  background-color: var(--sefin-primary-050);
}

.dropdown-menu {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-md);
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
  background-color: var(--sefin-primary-050);
  color: var(--sefin-primary-dark);
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus,
.dropdown-menu > .list-group-item-info > a {
  background-color: var(--sefin-primary);
  color: #fff;
}

.progress {
  background-color: #e7ebf3;
  border-radius: var(--radius-sm);
  box-shadow: none;
}
.progress-bar {
  background-color: var(--sefin-primary);
}
.progress-bar-warning { background-color: var(--sefin-gold); }
.progress-bar-info { background-color: var(--sefin-secondary); }

.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
  background-color: var(--sefin-primary);
  border-color: var(--sefin-primary);
}
.list-group-item-info {
  background-color: var(--sefin-primary-050);
  color: var(--sefin-primary-dark);
}

/* Breadcrumb */
.breadcrumb {
  background-color: transparent;
  padding: 6px 0;
}
.breadcrumb > .active {
  color: var(--sefin-primary);
  font-weight: 600;
}

/* ----------------------------------------------------------------------------
   14. SMART WIZARD  (custom.css: #34495E / #1ABB9C)
   ---------------------------------------------------------------------------- */
.wizard_horizontal .step_no,
.wizard_horizontal ul.wizard_steps li a .step_no {
  background-color: #ced6e3;
  color: var(--text);
  border: 2px solid #ced6e3;
}
.wizard_horizontal ul.wizard_steps li a.selected .step_no,
.wizard_horizontal ul.wizard_steps li a.selected:hover .step_no {
  background-color: var(--sefin-primary);
  border-color: var(--sefin-primary);
  color: #fff;
}
.wizard_horizontal ul.wizard_steps li a.done .step_no,
.wizard_horizontal ul.wizard_steps li a.done:hover .step_no {
  background-color: var(--sefin-gold);
  border-color: var(--sefin-gold);
  color: #fff;
}
.wizard_horizontal ul.wizard_steps li a.selected,
.wizard_horizontal ul.wizard_steps li a.done {
  color: var(--sefin-primary);
}

/* Directiva Wizard propia (app/directives/Wizard) */
.wizard .nav > li.active > a,
.wizard-steps .active {
  color: var(--sefin-primary);
  border-color: var(--sefin-primary);
}

/* ----------------------------------------------------------------------------
   15. KENDO 2015  (retoque ligero para armonizar con la paleta)
   ---------------------------------------------------------------------------- */
.k-widget {
  border-radius: var(--radius-sm);
}
.k-textbox,
.k-picker-wrap,
.k-numeric-wrap,
.k-dropdown-wrap {
  border-color: var(--border-strong) !important;
  border-radius: var(--radius-sm) !important;
  background-image: none !important;
}
.k-state-focused,
.k-picker-wrap.k-state-focused,
.k-numeric-wrap.k-state-focused,
.k-dropdown-wrap.k-state-focused {
  border-color: var(--sefin-primary) !important;
  box-shadow: var(--focus-ring) !important;
}
.k-calendar .k-state-selected,
.k-calendar .k-state-selected .k-link,
.k-state-selected,
.k-menu .k-state-selected > .k-link {
  background-color: var(--sefin-primary) !important;
  border-color: var(--sefin-primary) !important;
  color: #fff !important;
}
.k-calendar .k-today .k-link,
.k-calendar .k-state-hover .k-link {
  color: var(--sefin-primary) !important;
  border-color: var(--sefin-primary-100) !important;
}
.k-list .k-state-selected,
.k-list .k-state-focused {
  background-color: var(--sefin-primary) !important;
  color: #fff !important;
}
.k-button.k-primary {
  background-color: var(--sefin-primary) !important;
  border-color: var(--sefin-primary) !important;
}

/* ----------------------------------------------------------------------------
   16. OVERLAYS (block-ui / loading-bar / gritter)
   ---------------------------------------------------------------------------- */
.block-ui-overlay {
  background-color: rgba(244, 246, 251, 0.72) !important;
}
.block-ui-message {
  background-color: var(--sefin-primary) !important;
  color: #fff !important;
  border-radius: var(--radius-sm) !important;
  box-shadow: var(--shadow-md);
  font-weight: 600 !important;
}
#loading-bar .bar {
  background: var(--sefin-gold) !important;
}
#loading-bar .peg {
  box-shadow: 0 0 10px var(--sefin-gold), 0 0 5px var(--sefin-gold) !important;
}
#loading-bar-spinner .spinner-icon {
  border-top-color: var(--sefin-primary) !important;
  border-left-color: var(--sefin-primary) !important;
}

/* ----------------------------------------------------------------------------
   17. RESPONSIVE
   ---------------------------------------------------------------------------- */

/* --- Tablet / pantallas medianas: acotar el logo y el nombre de la app ----- */
@media (max-width: 1024px) {
  /* El engranaje (ajustes de plantilla) no se usa: ocultarlo en tablet/movil */
  #header .navbar-minimize-mobile.right {
    display: none !important;
  }
}

@media (max-width: 992px) {
  #header .navbar-header img {
    max-height: 34px !important;
    max-width: 160px !important;
  }
  .app-name { font-size: 16px !important; }
  .app-name span {
    font-size: 11px !important;
    display: inline-block;
    max-width: 46vw;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: bottom;
  }
}

/* --- Movil / tablet en vertical: el header pasa a 2 filas (Blankon <=768) --
   Fila 1 = franja azul: [hamburguesa] [logo]   (el engranaje va oculto)
   Fila 2 = barra blanca: [nombre app]            [perfil]                    */
@media (max-width: 768px) {

  /* Fila 1 -------------------------------------------------------------- */
  #header .header-left {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    min-height: 50px;
    padding: 0 6px !important;
    background-color: var(--sefin-primary) !important;
  }

  /* El engranaje de ajustes no se usa: fuera en movil/tablet */
  #header .navbar-minimize-mobile.right {
    display: none !important;
  }

  /* Hamburguesa (solo la izquierda): sacarla del position:absolute
     y volverla item compacto */
  #header .navbar-minimize-mobile.left {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    float: none !important;
    width: 46px !important;
    min-width: 46px !important;
    height: 46px !important;
    line-height: normal !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background-color: transparent !important;
    border-radius: var(--radius-sm);
    flex: 0 0 auto;
    z-index: 2;
  }
  #header .navbar-minimize-mobile.left:hover {
    background-color: rgba(255, 255, 255, 0.14) !important;
  }
  #header .navbar-minimize-mobile.left i {
    font-size: 20px !important;
    color: #ffffff !important;
  }

  /* Logo centrado; padding-right compensa el ancho de la hamburguesa
     para que quede visualmente al centro de la franja */
  #header .navbar-header {
    position: relative !important;
    float: none !important;
    width: auto !important;
    height: 50px !important;
    z-index: 1 !important;
    flex: 1 1 auto;
    min-width: 0;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding-right: 46px !important;
    overflow: hidden;
    background-color: transparent !important;
  }
  #header .navbar-header > div { width: auto !important; }
  #header .navbar-header img {
    width: auto !important;
    max-width: 150px !important;
    max-height: 32px !important;
  }

  /* Fila 2 : barra de herramientas (nombre app + perfil) --------------- */
  #header .header-right {
    width: 100% !important;
  }
  .navbar-toolbar,
  #header .navbar-toolbar.navbar-primary {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: nowrap !important;
    min-height: 46px;
    padding: 3px 10px !important;
  }
  .navbar-toolbar .navbar-nav {
    float: none !important;
    margin: 0 !important;
  }
  .navbar-toolbar .navbar-left {
    display: flex !important;
    align-items: center;
    flex: 1 1 auto;
    min-width: 0;
  }
  .navbar-toolbar .navbar-right {
    float: none !important;
    flex: 0 0 auto;
  }
  .navbar-toolbar .navbar-left .navbar-minimize,
  .navbar-toolbar .navbar-left .navbar-search {
    display: none !important;
  }

  .app-name-container {
    margin: 0 !important;
    padding: 0 !important;
    min-width: 0;
    list-style: none;
  }
  .app-name {
    font-size: 14px !important;
    line-height: 1.15 !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 62vw;
    margin: 0 !important;
  }
  .app-name span { display: none !important; }

  .navbar-primary .navbar-right .navbar-profile > a {
    padding: 6px 8px !important;
  }
  .navbar-primary .navbar-right .navbar-profile .meta .text {
    max-width: 34vw;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: inline-block;
    vertical-align: middle;
  }

  /* El contenido arranca debajo de las dos filas del header ------------ */
  #page-content {
    margin-top: 100px !important;
  }
  #sidebar-left {
    top: 100px !important;
  }

  /* Off-canvas: backdrop cuando el sidebar movil esta visible */
  body.page-sidebar-left-show #page-content:before {
    content: "";
    position: fixed;
    top: 0; right: 0; bottom: 0; left: 0;
    background: rgba(15, 30, 60, 0.42);
    z-index: 190;
  }
  #sidebar-left {
    box-shadow: 6px 0 24px rgba(16, 42, 90, 0.22) !important;
  }
  body.page-sidebar-left-show #sidebar-left {
    left: 0 !important;
  }

  .body-content-app { padding: 12px !important; }
  .body-content-app .panel-app { border-radius: var(--radius-sm) !important; }
  .body-content-app .panel-app .panel-heading-app,
  .body-content-app .panel-app .panel-body-app { padding: 14px !important; }

  .modal-body { padding: 16px; }
  .modal-header, .modal-footer { padding: 12px 16px; }
}

@media (max-width: 576px) {
  body { font-size: 14px; }
  .body-content-app { padding: 8px !important; }
  .body-content-app .panel-app .panel-heading-app,
  .body-content-app .panel-app .panel-body-app { padding: 12px !important; }

  /* Tablas: permitir scroll horizontal donde exista el contenedor */
  .table-responsive {
    -webkit-overflow-scrolling: touch;
    border: none;
  }
  #header .navbar-header img { max-width: 120px !important; max-height: 28px !important; }
  .app-name { font-size: 12.5px !important; max-width: 52vw; }
  .navbar-primary .navbar-right .navbar-profile .meta .text { display: none !important; }
  .btn-block-xs { display: block; width: 100%; }
}

/* Tablet: rail de iconos + area de contenido */
@media (min-width: 769px) and (max-width: 1024px) {
  body.page-sidebar-minimize-auto #page-content { margin-left: 60px; }
}

/* ----------------------------------------------------------------------------
   18. UTILIDADES / DETALLES
   ---------------------------------------------------------------------------- */
.text-primary { color: var(--sefin-primary) !important; }
.text-gold { color: var(--sefin-gold) !important; }
.bg-primary { background-color: var(--sefin-primary) !important; }

/* Tarjetas genericas usadas en vistas */
.card-box {
  background-color: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  box-shadow: var(--shadow-sm) !important;
}

/* Animaciones contenidas (pedido previo: evitar exceso) */
.animated {
  animation-duration: 0.28s;
}
.body-content-app.animated.fadeIn {
  animation-duration: 0.25s;
}
