/* 
 * FORMS UNION CSS - Modernización Bootstrap de formularios existentes
 * Mantiene nombres de clases originales para compatibilidad total
 * Sistema: Clínica Unión - ASP.NET MVC 4 + VB.NET + DevExpress 14.2
 */

/* ==================== VARIABLES UNION ====================  */
:root {
  --union-primary: #205a94;
  --union-secondary: #255c90;
  --union-light: #317abf;
  --union-success: #28a745;
  --union-info: #17a2b8;
  --union-warning: #ffc107;
  --union-danger: #dc3545;
  --union-white: #ffffff;
  --union-light-bg: #f8f9fa;
  --union-border: #ced4da;
  --union-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* ==================== INPUTS CON ANCHOS FIJOS ==================== */
.input100,
.input200,
.input300,
.input400,
.input500,
.input600,
.input700,
.input800 {
  padding: 8px 12px !important;
  font-size: 14px !important;
  line-height: 1.42857143 !important;
  color: #555 !important;
  background-color: #fff !important;
  background-image: none !important;
  border: 1px solid var(--union-border) !important;
  border-radius: 4px !important;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075) !important;
  transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s !important;
}

.input100:focus,
.input200:focus,
.input300:focus,
.input400:focus,
.input500:focus,
.input600:focus,
.input700:focus,
.input800:focus {
  border-color: var(--union-light) !important;
  outline: 0 !important;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075),
    0 0 8px rgba(49, 122, 191, 0.6) !important;
}

.input100 {
  width: 100px !important;
}
.input200 {
  width: 200px !important;
}
.input300 {
  width: 300px !important;
}
.input400 {
  width: 400px !important;
}
.input500 {
  width: 500px !important;
}
.input600 {
  width: 600px !important;
}
.input700 {
  width: 700px !important;
}
.input800 {
  width: 800px !important;
}

/* ==================== INPUTS CON ANCHOS PORCENTUALES ==================== */
.input10pc,
.input20pc,
.input30pc,
.input40pc,
.input50pc,
.input60pc,
.input70pc,
.input80pc,
.input90pc,
.input100pc {
  padding: 8px 12px !important;
  font-size: 14px !important;
  line-height: 1.42857143 !important;
  color: #555 !important;
  background-color: #fff !important;
  background-image: none !important;
  border: 1px solid var(--union-border) !important;
  border-radius: 4px !important;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075) !important;
  transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s !important;
  box-sizing: border-box !important;
}

.input10pc:focus,
.input20pc:focus,
.input30pc:focus,
.input40pc:focus,
.input50pc:focus,
.input60pc:focus,
.input70pc:focus,
.input80pc:focus,
.input90pc:focus,
.input100pc:focus {
  border-color: var(--union-light) !important;
  outline: 0 !important;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075),
    0 0 8px rgba(49, 122, 191, 0.6) !important;
}

.input10pc {
  width: 10% !important;
}
.input20pc {
  width: 20% !important;
}
.input30pc {
  width: 30% !important;
}
.input40pc {
  width: 40% !important;
}
.input50pc {
  width: 50% !important;
}
.input60pc {
  width: 60% !important;
}
.input70pc {
  width: 70% !important;
}
.input80pc {
  width: 80% !important;
}
.input90pc {
  width: 90% !important;
}
.input100pc {
  width: 100% !important;
}

/* ==================== TEXTAREAS ==================== */
textarea.input100,
textarea.input200,
textarea.input300,
textarea.input400,
textarea.input500,
textarea.input600,
textarea.input700,
textarea.input800,
textarea.input10pc,
textarea.input20pc,
textarea.input30pc,
textarea.input40pc,
textarea.input50pc,
textarea.input60pc,
textarea.input70pc,
textarea.input80pc,
textarea.input90pc,
textarea.input100pc {
  resize: vertical !important;
  min-height: 34px !important;
}

/* ==================== INPUTS READONLY ==================== */
input[readonly],
textarea[readonly] {
  background-color: #f5f5f5 !important;
  opacity: 1 !important;
  cursor: not-allowed !important;
}

/* ==================== BOTONES MODERNOS ==================== */
.button {
  display: inline-block !important;
  padding: 6px 12px !important;
  margin-bottom: 0 !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.42857143 !important;
  text-align: center !important;
  white-space: nowrap !important;
  vertical-align: middle !important;
  cursor: pointer !important;
  background-image: none !important;
  border: 1px solid transparent !important;
  border-radius: 4px !important;
  text-decoration: none !important;
  transition: all 0.2s ease-in-out !important;
  box-shadow: var(--union-shadow) !important;
}

.button:hover,
.button:focus {
  text-decoration: none !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15) !important;
}

.button:active {
  transform: translateY(0) !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
}

/* ==================== BOTONES POR COLOR ==================== */
.button.blue {
  color: #fff !important;
  background-color: var(--union-primary) !important;
  border-color: var(--union-secondary) !important;
}

.button.blue:hover,
.button.blue:focus {
  color: #fff !important;
  background-color: var(--union-secondary) !important;
  border-color: var(--union-primary) !important;
}

.button.lightblue {
  color: #fff !important;
  background-color: var(--union-info) !important;
  border-color: #138496 !important;
}

.button.lightblue:hover,
.button.lightblue:focus {
  color: #fff !important;
  background-color: #138496 !important;
  border-color: #117a8b !important;
}

.button.green {
  color: #fff !important;
  background-color: var(--union-success) !important;
  border-color: #1e7e34 !important;
}

.button.green:hover,
.button.green:focus {
  color: #fff !important;
  background-color: #1e7e34 !important;
  border-color: #1c7430 !important;
}

.button.orange {
  color: #fff !important;
  background-color: var(--union-warning) !important;
  border-color: #e0a800 !important;
}

.button.orange:hover,
.button.orange:focus {
  color: #212529 !important;
  background-color: #e0a800 !important;
  border-color: #d39e00 !important;
}

.button.red {
  color: #fff !important;
  background-color: var(--union-danger) !important;
  border-color: #bd2130 !important;
}

.button.red:hover,
.button.red:focus {
  color: #fff !important;
  background-color: #bd2130 !important;
  border-color: #b21f2d !important;
}

.button.gray {
  color: #fff !important;
  background-color: #6c757d !important;
  border-color: #5a6268 !important;
}

.button.gray:hover,
.button.gray:focus {
  color: #fff !important;
  background-color: #5a6268 !important;
  border-color: #545b62 !important;
}

.button.purple {
  color: #fff !important;
  background-color: #6f42c1 !important;
  border-color: #643ab0 !important;
}

.button.purple:hover,
.button.purple:focus {
  color: #fff !important;
  background-color: #643ab0 !important;
  border-color: #5a32a3 !important;
}

.button.black {
  color: #fff !important;
  background-color: #343a40 !important;
  border-color: #212529 !important;
}

.button.black:hover,
.button.black:focus {
  color: #fff !important;
  background-color: #212529 !important;
  border-color: #1d2124 !important;
}

/* ==================== TAMAÑOS DE BOTONES ==================== */
.button.small {
  padding: 5px 10px !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
  border-radius: 3px !important;
}

.button.medium {
  padding: 8px 16px !important;
  font-size: 16px !important;
  line-height: 1.33 !important;
  border-radius: 6px !important;
}

.button.large {
  padding: 10px 20px !important;
  font-size: 18px !important;
  line-height: 1.33 !important;
  border-radius: 6px !important;
}

/* ==================== FORMULARIOS MODERNOS ==================== */
.form_row {
  margin-bottom: 15px !important;
  position: relative !important;
  min-height: 34px !important;
  line-height: 1.42857143 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  vertical-align: middle !important;
  border: 0 !important;
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
}

/* Utilidad para ocultar filas condicionalmente (vence al display:flex !important de .form_row) */
.form_row.union-hidden {
  display: none !important;
}

.form_row label,
.form_row .field_name {
  margin-bottom: 5px !important;
  font-weight: bold !important;
  color: #333 !important;
  font-size: 14px !important;
  margin-left: 0 !important;
  flex-basis: auto !important;
}

.form_row input[type="text"],
.form_row input[type="password"],
.form_row input[type="email"],
.form_row input[type="number"],
.form_row input[type="tel"],
.form_row input[type="date"],
.form_row input[type="datetime-local"],
.form_row select,
.form_row textarea {
  /* padding: 8px 12px !important; */
  font-size: 14px !important;
  line-height: 1.42857143 !important;
  color: #555 !important;
  background-color: #fff !important;
  background-image: none !important;
  border: 1px solid var(--union-border) !important;
  border-radius: 4px !important;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075) !important;
  transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s !important;
}

.form_row input:focus,
.form_row select:focus,
.form_row textarea:focus {
  border-color: var(--union-light) !important;
  outline: 0 !important;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075),
    0 0 8px rgba(49, 122, 191, 0.6) !important;
}

/* ==================== VALIDACIÓN Y ESTADOS ==================== */
.form_row .has-error input,
.form_row .has-error select,
.form_row .has-error textarea {
  border-color: var(--union-danger) !important;
}

.form_row .has-error input:focus,
.form_row .has-error select:focus,
.form_row .has-error textarea:focus {
  border-color: var(--union-danger) !important;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075),
    0 0 6px rgba(220, 53, 69, 0.6) !important;
}

.form_row .has-success input,
.form_row .has-success select,
.form_row .has-success textarea {
  border-color: var(--union-success) !important;
}

.form_row .has-success input:focus,
.form_row .has-success select:focus,
.form_row .has-success textarea:focus {
  border-color: var(--union-success) !important;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075),
    0 0 6px rgba(40, 167, 69, 0.6) !important;
}

/* ==================== ELEMENTOS ESPECIALES ==================== */
.input_tips {
  font-size: 12px !important;
  color: var(--union-danger) !important;
  font-style: italic !important;
  margin-top: 5px !important;
  display: block !important;
}

/* ==================== COMPATIBILIDAD CON VALIDACIÓN ==================== */
.validate {
  position: relative !important;
}

.validate.error {
  border-color: var(--union-danger) !important;
  background-color: #fff5f5 !important;
}

.validate.valid {
  border-color: var(--union-success) !important;
  background-color: #f0fff4 !important;
}

/* ==================== RESPONSIVE FORMS ==================== */
@media (max-width: 768px) {
  .input10pc,
  .input20pc,
  .input30pc,
  .input40pc,
  .input50pc,
  .input60pc,
  .input70pc,
  .input80pc,
  .input90pc,
  .input100pc {
    width: 100% !important;
    margin-bottom: 10px !important;
  }

  .form_row {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .form_row label,
  .form_row .field_name {
    margin-bottom: 5px !important;
  }

  .button {
    width: 100% !important;
    margin-bottom: 10px !important;
  }
}

/* ==================== INTEGRACIÓN CON DEVEXPRESS ==================== */
/* Enfoque simplificado para evitar dobles bordes */

/* SOLO aplicar estilos a contenedores principales - NO a elementos internos */
.dxeEditAreaSys {
  border: 1px solid var(--union-border) !important;
  border-radius: 4px !important;
  box-sizing: border-box !important;
  transition: border-color 0.15s ease-in-out !important;
}

.dxeEditAreaSys:hover {
  border-color: var(--union-light) !important;
}

.dxeEditAreaSys:focus-within {
  border-color: var(--union-light) !important;
  box-shadow: 0 0 8px rgba(49, 122, 191, 0.6) !important;
}

/* Eliminar todos los bordes internos que causan conflicto */
.dxeEditArea,
.dxeEditArea table,
.dxeEditArea td,
.dxeEditArea input,
.dxeEditArea select {
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Estados de error - solo en contenedor principal */
.dxeEditAreaSys.dxeInvalid {
  border-color: var(--union-danger) !important;
  box-shadow: 0 0 6px rgba(220, 53, 69, 0.6) !important;
}

/* Estados disabled - solo en contenedor principal */
.dxeEditAreaSys.dxeDisabled {
  border-color: #e9ecef !important;
  background-color: #f8f9fa !important;
  opacity: 0.6 !important;
}

/* ==================== AJUSTES ESPECÍFICOS DEVEXPRESS ==================== */
/* Eliminar bordes internos problemáticos y unificar solo el contenedor principal */

/* Contenedores principales de controles - solo estos necesitan el borde unificado */
.dxeEditAreaSys {
  border: 1px solid var(--union-border) !important;
  border-radius: 4px !important;
  box-sizing: border-box !important;
}

.dxeEditAreaSys:hover {
  border-color: var(--union-light) !important;
}

.dxeEditAreaSys:focus-within {
  border-color: var(--union-light) !important;
  box-shadow: 0 0 8px rgba(49, 122, 191, 0.6) !important;
}

/* Eliminar bordes internos que causan doble borde */
.dxeEditArea,
.dxeEditArea table,
.dxeEditArea td,
.dxeEditArea input {
  border: none !important;
  box-shadow: none !important;
}

/* Grids - solo el contenedor principal */
.dxgvControl {
  border: 1px solid var(--union-border) !important;
  border-radius: 4px !important;
}

/* Eliminar bordes internos de celdas de grid que causan doble borde */
.dxgvControl .dxgvTable {
  border: none !important;
}

.dxgvControl .dxgvTable td,
.dxgvControl .dxgvTable th {
  border-left: none !important;
  border-right: none !important;
  border-top: none !important;
}

/* Solo mantener bordes de separación horizontal */
.dxgvControl .dxgvDataRow {
  border-bottom: 1px solid #f0f0f0 !important;
}

/* Popups y dropdowns - solo contenedor */
.dxeListBox,
.dxpcContent {
  border: 1px solid var(--union-border) !important;
  border-radius: 4px !important;
  box-shadow: var(--union-shadow) !important;
}

/* ==================== MEJORAS ADICIONALES ==================== */
.form-inline .form_row {
  display: inline-flex !important;
  margin-right: 15px !important;
  margin-bottom: 0 !important;
}

.form-horizontal .form_row {
  margin-left: -15px !important;
  margin-right: -15px !important;
}

/* ==================== EFECTOS Y ANIMACIONES ==================== */
@keyframes union-pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(49, 122, 191, 0.7);
  }
  70% {
    box-shadow: 0 0 0 10px rgba(49, 122, 191, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(49, 122, 191, 0);
  }
}

.button:active {
  animation: union-pulse 0.6s !important;
}

/* ==================== ACCESIBILIDAD ==================== */
.button:focus,
input:focus,
select:focus,
textarea:focus {
  outline: 2px solid var(--union-light) !important;
  outline-offset: 2px !important;
}

.button[disabled],
input[disabled],
select[disabled],
textarea[disabled] {
  opacity: 0.6 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}

/* ==================== SISTEMA 960 GRID - COMPATIBILIDAD ==================== */
/* Sistema de grillas para mantener compatibilidad con layout existente */

/* =Containers
--------------------------------------------------------------------------------*/

.container_12,
.container_16 {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  position: relative;
}

/* =Grid >> Global
--------------------------------------------------------------------------------*/

.grid_1,
.grid_2,
.grid_3,
.grid_4,
.grid_5,
.grid_6,
.grid_7,
.grid_8,
.grid_9,
.grid_10,
.grid_11,
.grid_12,
.grid_13,
.grid_14,
.grid_15,
.grid_16 {
  display: inline;
  float: left;
  margin-left: 1%;
  margin-right: 1%;
  box-sizing: border-box;
}

.container_12 .grid_3,
.container_16 .grid_4 {
  width: 23%;
}

.container_12 .grid_6,
.container_16 .grid_8 {
  width: 48%;
}

.container_12 .grid_9,
.container_16 .grid_12 {
  width: 73%;
}

.container_12 .grid_12,
.container_16 .grid_16 {
  width: 98%;
}

/* =Grid >> Children (Alpha ~ First, Omega ~ Last)
--------------------------------------------------------------------------------*/

.alpha {
  margin-left: 0;
}

.omega {
  margin-right: 0;
}

/* =Grid >> 12 Columns
--------------------------------------------------------------------------------*/

.container_12 .grid_1 {
  width: 6.333%;
}

.container_12 .grid_2 {
  width: 14.666%;
}

.container_12 .grid_4 {
  width: 31.333%;
}

.container_12 .grid_5 {
  width: 39.666%;
}

.container_12 .grid_7 {
  width: 56.333%;
}

.container_12 .grid_8 {
  width: 64.666%;
}

.container_12 .grid_10 {
  width: 81.333%;
}

.container_12 .grid_11 {
  width: 89.666%;
}

/* =Grid >> 16 Columns
--------------------------------------------------------------------------------*/

.container_16 .grid_1 {
  width: 4.25%;
}

.container_16 .grid_2 {
  width: 10.5%;
}

.container_16 .grid_3 {
  width: 16.75%;
}

.container_16 .grid_5 {
  width: 29.25%;
}

.container_16 .grid_6 {
  width: 35.5%;
}

.container_16 .grid_7 {
  width: 41.75%;
}

.container_16 .grid_9 {
  width: 54.25%;
}

.container_16 .grid_10 {
  width: 60.5%;
}

.container_16 .grid_11 {
  width: 66.75%;
}

.container_16 .grid_13 {
  width: 79.25%;
}

.container_16 .grid_14 {
  width: 85.5%;
}

.container_16 .grid_15 {
  width: 91.75%;
}

/* =Prefix Extra Space >> Global
--------------------------------------------------------------------------------*/

.container_12 .prefix_3,
.container_16 .prefix_4 {
  padding-left: 25%;
}

.container_12 .prefix_6,
.container_16 .prefix_8 {
  padding-left: 50%;
}

.container_12 .prefix_9,
.container_16 .prefix_12 {
  padding-left: 75%;
}

/* =Prefix Extra Space >> 12 Columns
--------------------------------------------------------------------------------*/

.container_12 .prefix_1 {
  padding-left: 8.333%;
}

.container_12 .prefix_2 {
  padding-left: 16.666%;
}

.container_12 .prefix_4 {
  padding-left: 33.333%;
}

.container_12 .prefix_5 {
  padding-left: 41.666%;
}

.container_12 .prefix_7 {
  padding-left: 58.333%;
}

.container_12 .prefix_8 {
  padding-left: 66.666%;
}

.container_12 .prefix_10 {
  padding-left: 83.333%;
}

.container_12 .prefix_11 {
  padding-left: 91.666%;
}

/* =Prefix Extra Space >> 16 Columns
--------------------------------------------------------------------------------*/

.container_16 .prefix_1 {
  padding-left: 6.25%;
}

.container_16 .prefix_2 {
  padding-left: 12.5%;
}

.container_16 .prefix_3 {
  padding-left: 18.75%;
}

.container_16 .prefix_5 {
  padding-left: 31.25%;
}

.container_16 .prefix_6 {
  padding-left: 37.5%;
}

.container_16 .prefix_7 {
  padding-left: 43.75%;
}

.container_16 .prefix_9 {
  padding-left: 56.25%;
}

.container_16 .prefix_10 {
  padding-left: 62.5%;
}

.container_16 .prefix_11 {
  padding-left: 68.75%;
}

.container_16 .prefix_13 {
  padding-left: 81.25%;
}

.container_16 .prefix_14 {
  padding-left: 87.5%;
}

.container_16 .prefix_15 {
  padding-left: 93.75%;
}

/* =Suffix Extra Space >> Global
--------------------------------------------------------------------------------*/

.container_12 .suffix_3,
.container_16 .suffix_4 {
  padding-right: 25%;
}

.container_12 .suffix_6,
.container_16 .suffix_8 {
  padding-right: 50%;
}

.container_12 .suffix_9,
.container_16 .suffix_12 {
  padding-right: 75%;
}

/* =Suffix Extra Space >> 12 Columns
--------------------------------------------------------------------------------*/

.container_12 .suffix_1 {
  padding-right: 8.333%;
}

.container_12 .suffix_2 {
  padding-right: 16.666%;
}

.container_12 .suffix_4 {
  padding-right: 33.333%;
}

.container_12 .suffix_5 {
  padding-right: 41.666%;
}

.container_12 .suffix_7 {
  padding-right: 58.333%;
}

.container_12 .suffix_8 {
  padding-right: 66.666%;
}

.container_12 .suffix_10 {
  padding-right: 83.333%;
}

.container_12 .suffix_11 {
  padding-right: 91.666%;
}

/* =Suffix Extra Space >> 16 Columns
--------------------------------------------------------------------------------*/

.container_16 .suffix_1 {
  padding-right: 6.25%;
}

.container_16 .suffix_2 {
  padding-right: 12.5%;
}

.container_16 .suffix_3 {
  padding-right: 18.75%;
}

.container_16 .suffix_5 {
  padding-right: 31.25%;
}

.container_16 .suffix_6 {
  padding-right: 37.5%;
}

.container_16 .suffix_7 {
  padding-right: 43.75%;
}

.container_16 .suffix_9 {
  padding-right: 56.25%;
}

.container_16 .suffix_10 {
  padding-right: 62.5%;
}

.container_16 .suffix_11 {
  padding-right: 68.75%;
}

.container_16 .suffix_13 {
  padding-right: 81.25%;
}

.container_16 .suffix_14 {
  padding-right: 87.5%;
}

.container_16 .suffix_15 {
  padding-right: 93.75%;
}

/* =Clear Floated Elements
--------------------------------------------------------------------------------*/

html body * span.clear,
html body * div.clear,
html body * li.clear,
html body * dd.clear {
  background: none;
  border: 0;
  clear: both;
  display: block;
  float: none;
  font-size: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  visibility: hidden;
  width: 0;
  height: 0;
}

.clearfix:after {
  clear: both;
  content: ".";
  display: block;
  visibility: hidden;
  height: 0;
}

.clearfix {
  display: inline-block;
}

* html .clearfix {
  height: 1%;
}

.clearfix {
  display: block;
}

/* =Responsive Grid System
--------------------------------------------------------------------------------*/

@media (max-width: 768px) {
  .grid_1,
  .grid_2,
  .grid_3,
  .grid_4,
  .grid_5,
  .grid_6,
  .grid_7,
  .grid_8,
  .grid_9,
  .grid_10,
  .grid_11,
  .grid_12,
  .grid_13,
  .grid_14,
  .grid_15,
  .grid_16 {
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    float: none !important;
    display: block !important;
    margin-bottom: 15px !important;
  }

  .container_12 .prefix_1,
  .container_12 .prefix_2,
  .container_12 .prefix_3,
  .container_12 .prefix_4,
  .container_12 .prefix_5,
  .container_12 .prefix_6,
  .container_12 .prefix_7,
  .container_12 .prefix_8,
  .container_12 .prefix_9,
  .container_12 .prefix_10,
  .container_12 .prefix_11,
  .container_16 .prefix_1,
  .container_16 .prefix_2,
  .container_16 .prefix_3,
  .container_16 .prefix_4,
  .container_16 .prefix_5,
  .container_16 .prefix_6,
  .container_16 .prefix_7,
  .container_16 .prefix_8,
  .container_16 .prefix_9,
  .container_16 .prefix_10,
  .container_16 .prefix_11,
  .container_16 .prefix_12,
  .container_16 .prefix_13,
  .container_16 .prefix_14,
  .container_16 .prefix_15 {
    padding-left: 0 !important;
  }

  .container_12 .suffix_1,
  .container_12 .suffix_2,
  .container_12 .suffix_3,
  .container_12 .suffix_4,
  .container_12 .suffix_5,
  .container_12 .suffix_6,
  .container_12 .suffix_7,
  .container_12 .suffix_8,
  .container_12 .suffix_9,
  .container_12 .suffix_10,
  .container_12 .suffix_11,
  .container_16 .suffix_1,
  .container_16 .suffix_2,
  .container_16 .suffix_3,
  .container_16 .suffix_4,
  .container_16 .suffix_5,
  .container_16 .suffix_6,
  .container_16 .suffix_7,
  .container_16 .suffix_8,
  .container_16 .suffix_9,
  .container_16 .suffix_10,
  .container_16 .suffix_11,
  .container_16 .suffix_12,
  .container_16 .suffix_13,
  .container_16 .suffix_14,
  .container_16 .suffix_15 {
    padding-right: 0 !important;
  }
}

/* =Integración con Bootstrap Grid (Compatibilidad)
--------------------------------------------------------------------------------*/

.grid_12 {
  /* Equivale a col-md-12 en Bootstrap */
  width: 98% !important;
}

.grid_11 {
  /* Equivale aproximadamente a col-md-11 en Bootstrap */
  width: 89.666% !important;
}

.grid_10 {
  /* Equivale aproximadamente a col-md-10 en Bootstrap */
  width: 81.333% !important;
}

.grid_9 {
  /* Equivale aproximadamente a col-md-9 en Bootstrap */
  width: 73% !important;
}

.grid_8 {
  /* Equivale aproximadamente a col-md-8 en Bootstrap */
  width: 64.666% !important;
}

.grid_6 {
  /* Equivale a col-md-6 en Bootstrap */
  width: 48% !important;
}

.grid_4 {
  /* Equivale a col-md-4 en Bootstrap */
  width: 31.333% !important;
}

.grid_3 {
  /* Equivale a col-md-3 en Bootstrap */
  width: 23% !important;
}

/* =Mejoras para Form Rows con Grid
--------------------------------------------------------------------------------*/

.form_row .grid_10 {
  margin-right: 0 !important;
}

.form_row .grid_2 {
  padding-top: 2px;
}

.form_row .grid_1,
.form_row .grid_2,
.form_row .grid_3,
.form_row .grid_4,
.form_row .grid_5,
.form_row .grid_6,
.form_row .grid_7,
.form_row .grid_8,
.form_row .grid_9,
.form_row .grid_10,
.form_row .grid_11,
.form_row .grid_12 {
  display: inline-block !important;
  vertical-align: middle !important;
  margin-bottom: 0 !important;
}

/* =Grid específico para Layout2 y compatibilidad con DevExpress
--------------------------------------------------------------------------------*/

.layout2 .grid_1,
.layout2 .grid_2,
.layout2 .grid_3,
.layout2 .grid_4,
.layout2 .grid_5,
.layout2 .grid_6,
.layout2 .grid_7,
.layout2 .grid_8,
.layout2 .grid_9,
.layout2 .grid_10,
.layout2 .grid_11,
.layout2 .grid_12 {
  position: relative;
  min-height: 1px;
}

/* =Fin del Sistema 960 Grid
--------------------------------------------------------------------------------*/

/* ==================== TABS MODERNOS JQUERY UI ==================== */
/* Modernización de tabs manteniendo compatibilidad con jQuery UI */

/* Contenedor principal de tabs */
.ui-tabs {
  position: relative;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
  font-family: inherit !important;
}

/* Navegación de tabs - estilo moderno */
.ui-tabs .ui-tabs-nav {
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
  border-bottom: 2px solid var(--union-border) !important;
  margin-bottom: 20px !important;
  overflow: hidden;
  position: relative;
}

/* Items individuales de tabs */
.ui-tabs .ui-tabs-nav li {
  list-style: none !important;
  float: left !important;
  position: relative !important;
  top: 0 !important;
  /* margin: 0 2px -2px 0 !important; */
  border: none !important;
  padding: 0 !important;
  white-space: nowrap !important;
  border-radius: 6px 6px 0 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Enlaces de tabs - diseño moderno */
.ui-tabs .ui-tabs-nav li a {
  float: left !important;
  padding: 12px 20px !important;
  text-decoration: none !important;
  color: #666 !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  border: 1px solid transparent !important;
  border-radius: 6px 6px 0 0 !important;
  background: linear-gradient(to bottom, #ffffff 0%, #f8f9fa 100%) !important;
  transition: all 0.3s ease !important;
  position: relative !important;
  min-height: 20px !important;
  line-height: 1.4 !important;
}

/* Efecto hover para tabs inactivos */
.ui-tabs .ui-tabs-nav li:not(.ui-tabs-active):not(.ui-state-disabled) a:hover {
  color: var(--union-primary) !important;
  background: linear-gradient(to bottom, #ffffff 0%, #e9ecef 100%) !important;
  border-color: var(--union-border) !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
  transform: translateY(-1px) !important;
}

/* Tab activo - estilo destacado */
.ui-tabs .ui-tabs-nav li.ui-tabs-active {
  margin-bottom: -2px !important;
  padding-bottom: 0 !important;
  z-index: 2 !important;
}

.ui-tabs .ui-tabs-nav li.ui-tabs-active a {
  color: var(--union-primary) !important;
  background: linear-gradient(to bottom, #ffffff 0%, #ffffff 100%) !important;
  border: 1px solid var(--union-border) !important;
  border-bottom: 2px solid #ffffff !important;
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.1) !important;
  font-weight: 600 !important;
  position: relative !important;
}

/* Indicador visual del tab activo */
.ui-tabs .ui-tabs-nav li.ui-tabs-active a:before {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--union-primary);
  border-radius: 2px 2px 0 0;
}

/* Estados deshabilitados */
.ui-tabs .ui-tabs-nav li.ui-state-disabled a {
  cursor: not-allowed !important;
  opacity: 0.5 !important;
  color: #999 !important;
  background: #f5f5f5 !important;
}

.ui-tabs .ui-tabs-nav li.ui-state-disabled a:hover {
  transform: none !important;
  box-shadow: none !important;
}

/* Estado de carga */
.ui-tabs .ui-tabs-nav li.ui-tabs-loading a {
  cursor: wait !important;
  position: relative !important;
}

.ui-tabs .ui-tabs-nav li.ui-tabs-loading a:after {
  content: "";
  position: absolute;
  right: 8px;
  top: 50%;
  margin-top: -8px;
  width: 16px;
  height: 16px;
  background: url("../images/indicator.gif") no-repeat center;
  background-size: 16px 16px;
}

/* Panel de contenido */
.ui-tabs .ui-tabs-panel {
  border: none !important;
  padding: 20px 0 !important;
  background: transparent !important;
  min-height: 200px !important;
}

/* Eliminamos animaciones que interfieren con jQuery UI */

/* Responsive - tablets y móviles */
@media (max-width: 768px) {
  .ui-tabs .ui-tabs-nav li {
    float: none !important;
    display: block !important;
    width: 100% !important;
    margin: 0 0 1px 0 !important;
  }

  .ui-tabs .ui-tabs-nav li a {
    float: none !important;
    border-radius: 4px !important;
    margin-bottom: 2px !important;
  }

  .ui-tabs .ui-tabs-nav li.ui-tabs-active a:before {
    display: none;
  }

  .ui-tabs .ui-tabs-nav {
    border-bottom: none !important;
    margin-bottom: 10px !important;
  }
}

/* Fix para tabs con muchos elementos */
.ui-tabs .ui-tabs-nav:after {
  content: "";
  display: table;
  clear: both;
}

/* Mejoras específicas para el contenido AJAX */
.ui-tabs .ui-tabs-panel[aria-live="polite"] {
  /* Sin transiciones para mantener funcionalidad jQuery UI */
}

/* Estilos para indicador de carga centralizado */
.ui-tabs .ui-tabs-panel center {
  margin: 40px 0;
}

.ui-tabs .ui-tabs-panel center img[alt="Cargando"] {
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.9);
  padding: 10px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

/* =Fin de Tabs Modernos jQuery UI
--------------------------------------------------------------------------------*/

/* ==================== TABS MODERNOS BOOTSTRAP (.nav .nav-tabs) ==================== */
/* Aplicando el mismo diseño moderno a tabs de Bootstrap para consistencia */

/* Contenedor principal de tabs Bootstrap */
.nav.nav-tabs {
  border: none !important;
  border-bottom: 2px solid var(--union-border) !important;
  margin-bottom: 20px !important;
  background: transparent !important;
  padding-left: 0 !important;
}

/* Items individuales de tabs Bootstrap */
.nav.nav-tabs > li {
  margin: 0 2px -2px 0 !important;
  border: none !important;
  background: transparent !important;
  float: left !important;
}

/* Enlaces de tabs Bootstrap - diseño moderno */
.nav.nav-tabs > li > a {
  padding: 12px 20px !important;
  text-decoration: none !important;
  color: #666 !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  border: 1px solid transparent !important;
  border-radius: 6px 6px 0 0 !important;
  background: linear-gradient(to bottom, #ffffff 0%, #f8f9fa 100%) !important;
  transition: all 0.3s ease !important;
  position: relative !important;
  margin-right: 0 !important;
  min-height: 20px !important;
  line-height: 1.4 !important;
}

/* Efecto hover para tabs inactivos Bootstrap */
.nav.nav-tabs > li:not(.active) > a:hover {
  color: var(--union-primary) !important;
  background: linear-gradient(to bottom, #ffffff 0%, #e9ecef 100%) !important;
  border-color: var(--union-border) !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
  transform: translateY(-1px) !important;
}

/* Tab activo Bootstrap - estilo destacado */
.nav.nav-tabs > li.active {
  margin-bottom: -2px !important;
  z-index: 2 !important;
}

.nav.nav-tabs > li.active > a,
.nav.nav-tabs > li.active > a:hover,
.nav.nav-tabs > li.active > a:focus {
  color: var(--union-primary) !important;
  background: linear-gradient(to bottom, #ffffff 0%, #ffffff 100%) !important;
  border: 1px solid var(--union-border) !important;
  border-bottom: 2px solid #ffffff !important;
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.1) !important;
  font-weight: 600 !important;
  cursor: default !important;
}

/* Indicador visual del tab activo Bootstrap */
.nav.nav-tabs > li.active > a:before {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--union-primary);
  border-radius: 2px 2px 0 0;
}

/* Estados deshabilitados Bootstrap */
.nav.nav-tabs > li.disabled > a,
.nav.nav-tabs > li.disabled > a:hover,
.nav.nav-tabs > li.disabled > a:focus {
  cursor: not-allowed !important;
  opacity: 0.5 !important;
  color: #999 !important;
  background: #f5f5f5 !important;
  transform: none !important;
  box-shadow: none !important;
}

/* Contenido de tabs Bootstrap */
.tab-content {
  border: none !important;
  padding: 20px 0 !important;
  background: transparent !important;
  /* min-height: 200px !important; */
}

.tab-content > .tab-pane {
  padding: 0 !important;
}

/* Responsive - tablets y móviles para Bootstrap */
@media (max-width: 768px) {
  .nav.nav-tabs > li {
    float: none !important;
    display: block !important;
    width: 100% !important;
    margin: 0 0 1px 0 !important;
  }

  .nav.nav-tabs > li > a {
    border-radius: 4px !important;
    margin-bottom: 2px !important;
  }

  .nav.nav-tabs > li.active > a:before {
    display: none;
  }

  .nav.nav-tabs {
    border-bottom: none !important;
    margin-bottom: 10px !important;
  }
}

/* Fix para clearfix en tabs Bootstrap */
.nav.nav-tabs:after {
  content: "";
  display: table;
  clear: both;
}

/* Mejoras específicas para dropdown en tabs Bootstrap */
.nav.nav-tabs .dropdown-menu {
  border-radius: 0 0 6px 6px !important;
  border-top: none !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
}

/* =Fin de Tabs Modernos Bootstrap
--------------------------------------------------------------------------------*/
