:root {
  --bs-border-color: black !important;
}
.nav-tabs {
  --bs-border-color: #dee2e6 !important; /* color gris original */
}
.tab-pane {
  --bs-border-color: #dee2e6 !important; /* color gris original */
}
.tab-pane input {
  --bs-border-color: black !important; /* color gris original */
}
/*
######## #### ##     ## ########       ##       #### ##    ## ########
   ##     ##  ###   ### ##             ##        ##  ###   ## ##
   ##     ##  #### #### ##             ##        ##  ####  ## ##
   ##     ##  ## ### ## ######         ##        ##  ## ## ## ######
   ##     ##  ##     ## ##             ##        ##  ##  #### ##
   ##     ##  ##     ## ##             ##        ##  ##   ### ##
   ##    #### ##     ## ########       ######## #### ##    ## ########
*/
.timeline {
  display: flex;
  justify-content: space-between;
  position: relative;
  width: 100%;
  padding: 20px 0;
  flex-wrap: nowrap;
}

/* Línea detrás */
.timeline::before {
  content: "";
  position: absolute;
  top: calc(50% + 10px);
  left: 35px;
  right: 35px;
  height: 2px;
  background: #39a935;
  z-index: 0;
}

.step {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  z-index: 1;
  min-width: 80px;
  text-align: center;
}

.label {
  margin-bottom: 8px;
  font-size: 14px;
  font-weight: bold;
}

.dot {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: none;
  background: #dadde1;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 18px;
}
.dot.active {
  background: #39a935;
}

/* === Responsive: 2 pasos por fila en móvil === */
@media (max-width: 768px) {
  .timeline {
    flex-wrap: wrap;
    justify-content: center;
    row-gap: 20px;
    column-gap: 40px;
  }

  .timeline::before {
    content: none; /* Quitamos la línea */
  }

  .step {
    width: 45%;
    flex-direction: column;
  }

  .label {
    font-size: 15px;
  }

  .dot {
    width: 50px;
    height: 50px;
    font-size: 20px;
  }
}




/*
########  #######  ########  ##     ##        ######   ######## ##    ## ######## ########     ###    ##
##       ##     ## ##     ## ###   ###       ##    ##  ##       ###   ## ##       ##     ##   ## ##   ##
##       ##     ## ##     ## #### ####       ##        ##       ####  ## ##       ##     ##  ##   ##  ##
######   ##     ## ########  ## ### ##       ##   #### ######   ## ## ## ######   ########  ##     ## ##
##       ##     ## ##   ##   ##     ##       ##    ##  ##       ##  #### ##       ##   ##   ######### ##
##       ##     ## ##    ##  ##     ##       ##    ##  ##       ##   ### ##       ##    ##  ##     ## ##
##        #######  ##     ## ##     ##        ######   ######## ##    ## ######## ##     ## ##     ## ########
*/
label{
    margin-top: 8px !important;
    margin-bottom: 0 !important;
}
.form-label{
    margin-bottom: 0 !important;
}
input[type="text"], input[type="checkbox"], input[type="email"], input[type="number"], input[type="date"], input[type="radio"], select{
    border: 1px solid black;
}
.evitarOverflow{
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 10px;
}
.choices__inner .invalid-feedback {
  position: absolute !important;
  bottom: -1.5em !important;
  left: 0;
  width: 100%;
  color: #dc3545;
  font-size: 0.875em;
  white-space: nowrap;
  overflow: hidden;
}

.choices {
  position: relative;
  overflow: visible !important; /* para que el mensaje se vea */
}
#AutorizoDatosPersonales ~ .invalid-feedback {
    grid-column: 1 / -1;     /* ocupa toda la fila completa */
    grid-row: 2;             /* baja una fila */
    margin-left: 24px;       /* alinea con el texto */
    margin-top: 6px;
}
/* ===== Checkbox: Declaración de origen de fondos ===== */
#Declaraciondeorigendefondos {
  grid-row: 1;
  grid-column: 1;
}

#Declaraciondeorigendefondos + label {
  grid-row: 1;
  grid-column: 2;
}

/* 🔹 Mueve el mensaje de error debajo del label */
#Declaraciondeorigendefondos ~ .invalid-feedback {
  grid-column: 1 / -1;     /* ocupa toda la fila completa */
  grid-row: 2;             /* baja una fila */
  margin-left: 32px;       /* alinea con el texto */
  margin-top: 6px;
  font-size: 0.9em;
  color: #dc3545;
  display: block;
}
/* Declaración de origen de fondos */
#Declaraciondeorigendefondos ~ .invalid-feedback {
  grid-column: 1 / -1;
  grid-row: 2;
  margin-left: 30px;
  margin-top: 6px;
  color: #dc3545;
  font-size: 0.9em;
  display: block;
}

/* Otras autorizaciones y declaraciones */
#AutorizoPoliticaDatos2 ~ .invalid-feedback {
  grid-column: 1 / -1;
  grid-row: 2;
  margin-left: 30px;
  margin-top: 6px;
  color: #dc3545;
  font-size: 0.9em;
  display: block;
}




/*
#### ##    ## ########  ##     ## ########    ########  ########   #######  ########  ########  #######  ##    ## ########
 ##  ###   ## ##     ## ##     ##    ##       ##     ## ##     ## ##     ## ##     ##      ##  ##     ## ###   ## ##
 ##  ####  ## ##     ## ##     ##    ##       ##     ## ##     ## ##     ## ##     ##     ##   ##     ## ####  ## ##
 ##  ## ## ## ########  ##     ##    ##       ##     ## ########  ##     ## ########     ##    ##     ## ## ## ## ######
 ##  ##  #### ##        ##     ##    ##       ##     ## ##   ##   ##     ## ##          ##     ##     ## ##  #### ##
 ##  ##   ### ##        ##     ##    ##       ##     ## ##    ##  ##     ## ##         ##      ##     ## ##   ### ##
#### ##    ## ##         #######     ##       ########  ##     ##  #######  ##        ########  #######  ##    ## ########
*/
/* 🔹 Estilo general */
.dropzone {
  min-height: 250px;
  border: 2px dashed #666;
  border-radius: 10px;
  background: #f9f9f9;

  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}


/* 🔹 Centrar y agrandar miniaturas */
.dropzone .dz-preview .dz-image {
  width: 200px !important;
  height: 200px !important;
  border-radius: 10px;
  overflow: hidden;
  margin: 10px auto;
}

.dropzone .dz-preview .dz-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 🔹 Centrar todo el contenido */
.dropzone .dz-preview {
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* 🔹 Texto por defecto */
.dropzone .dz-message {
  font-size: 16px;
  color: #555;
  text-align: center;
}

/* 🔹 Miniatura personalizada para PDF */
.dropzone .dz-pdf-icon {
  width: 200px;
  height: 200px;
  background: #ff4b4b;
  border-radius: 10px;
  color: white;
  font-weight: bold;
  font-size: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
}
#loadingOverlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1055; /* mayor que cualquier modal o dropdown */
}