
/* --------------------------------------------------------------------------
   Progreso de formulario
   -------------------------------------------------------------------------- */

#progreso_barra {
    position: absolute;
    top: 40%;
}

.icon-base-activo {
    color: var(--color-grisaceo) !important;
}

.icon-base-inactivo {
    color: gray;
}

.icon-base-actual {
    color: var(--color-primary) !important;
}

.icon-base-faltan-datos {
    color: var(--color-danger);
}

.btn-progreso {
    padding: 6px 0px;
    border-radius: 15px;
    text-align: center;
    font-size: 12px;
    line-height: 1.42857;
}

.icon-flotante {
    color: #fff !important;
    position: absolute;
    top: 20%;
    left: 0;
    right: 0;
    font-size: 1.2em;
}
.titulo-btn-progreso{
    font-size: .70em;
    color: #6c757d !important;
    word-wrap: initial;
}

#div-buscando_localidades {
    display: none;
    align-items: center;
    gap: 10px;
    padding: 6px 0;
}
#div-buscando_localidades.visible {
    display: flex;
}
#div-localidad.cargando select {
    display: none;
}
.permiso-card input[type="radio"] { position: absolute; opacity: 0; width: 0; height: 0; }

.permiso-label {
  display: flex;
  flex-direction: column;
  height: 100%;
  cursor: pointer;
  transition: border-color 0.18s ease, background-color 0.18s ease;
}
.permiso-card input:checked + .permiso-label {
  border: 2px solid #0d6efd !important;
  background-color: #e8f0fe !important;
}
.permiso-card input:checked + .permiso-label .permiso-codigo {
  background: #cfe2ff;
  color: #084298;
  border-color: #b6d4fe;
}
.permiso-card input:checked + .permiso-label .border-top {
  border-color: #b6d4fe !important;
}

.permiso-check {
  width: 20px; height: 20px;
  border-radius: 50%;
  border: 1.5px solid #dee2e6;
  background: #f8f9fa;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.18s, border-color 0.18s;
  flex-shrink: 0;
}
.permiso-card input:checked + .permiso-label .permiso-check {
  background: #0d6efd;
  border-color: #0d6efd;
}
.permiso-check::after {
  content: '';
  width: 7px; height: 7px;
  border-radius: 50%;
  background: white;
  opacity: 0;
  transition: opacity 0.15s;
}
.permiso-card input:checked + .permiso-label .permiso-check::after { opacity: 1; }

/* método de pago — tarjetas */
.pago-card { position: relative; }
.pago-card input[type="radio"] { position: absolute; opacity: 0; width: 0; height: 0; }

.pago-label {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 16px 12px;
  background: #fff;
  border: 1px solid #dee2e6;
  border-radius: 12px;
  cursor: pointer;
  text-align: center;
  transition: border-color 0.18s ease, background 0.18s ease;
}
.pago-label:hover {
  border-color: #adb5bd;
  background: #f8f9fa;
}
.pago-card input:checked + .pago-label {
  border: 2px solid #0d6efd;
  background: #e8f0fe;
}

.pago-icon {
  font-size: 28px;
  color: #6c757d;
  transition: color 0.18s;
}
.pago-card input:checked + .pago-label .pago-icon { color: #0a58ca; }

/* círculo check igual que permisos */
.pago-check {
  width: 18px; height: 18px;
  border-radius: 50%;
  border: 1.5px solid #dee2e6;
  background: #f8f9fa;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.18s, border-color 0.18s;
}
.pago-card input:checked + .pago-label .pago-check {
  background: #0d6efd;
  border-color: #0d6efd;
}
.pago-check::after {
  content: '';
  width: 6px; height: 6px;
  border-radius: 50%;
  background: white;
  opacity: 0;
  transition: opacity 0.15s;
}
.pago-card input:checked + .pago-label .pago-check::after { opacity: 1; }


/* documentación — upload boxes */
.doc-section-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  color: #6c757d;
  padding-bottom: 8px;
  border-bottom: 1px solid #dee2e6;
  margin-bottom: 10px;
}

.upload-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 20px 16px;
  border: 1.5px dashed #adb5bd;
  border-radius: 12px;
  background: #f8f9fa;
  cursor: pointer;
  text-align: center;
  transition: border-color 0.18s ease, background 0.18s ease, border-style 0.18s ease;
}
.upload-box:hover,
.upload-box:focus-within {
  border-color: #0d6efd;
  background: #e8f0fe;
}
.upload-box.is-filled {
  border-style: solid;
  border-color: #5b9bd5;
  background: #eef6ff;
}
.upload-box i {
  font-size: 24px;
  color: #6c757d;
  transition: color 0.18s;
}
.upload-box:hover i,
.upload-box:focus-within i { color: #0a58ca; }
.upload-box.is-filled i { color: #5b9bd5; }

.upload-box label {
  font-size: 13px;
  font-weight: 500;
  color: #212529;
  margin: 0;
  cursor: pointer;
}
.upload-box .upload-hint {
  font-size: 11px;
  color: #adb5bd;
}
.upload-box.is-filled .upload-hint {
  color: #5b9bd5;
  font-weight: 600;
}
.upload-box .upload-file-name {
  font-size: 11px;
  color: #5b9bd5;
  font-weight: 600;
  word-break: break-word;
}

/* ocultar el input file nativo dentro del box */
.upload-box input[type="file"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}