function generarColorPastel(colorBase) {

  // Convertir el color base de formato hexadecimal a RGB

  var r = parseInt(colorBase.substring(1, 3), 16);

  var g = parseInt(colorBase.substring(3, 5), 16);

  var b = parseInt(colorBase.substring(5, 7), 16);



  // Aplicar un factor de mezcla para suavizar el color

  var factor = 0.7;

  r = Math.round(r * factor + 255 * (1 - factor));

  g = Math.round(g * factor + 255 * (1 - factor));

  b = Math.round(b * factor + 255 * (1 - factor));



  // Convertir el nuevo color RGB de vuelta a formato hexadecimal

  var colorPastel = "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);



  return colorPastel;

}





function obtenerContraste(color) {

    // Convierte el color hexadecimal a RGB

        var rgb = [];

        for (var i = 1; i < 7; i += 2) {

            rgb.push(parseInt(color.substr(i, 2), 16));

        }



        // Calcula el contraste utilizando la fórmula YIQ

        return (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;

    }



function combinarColores(color1, color2) {

    // Convierte los colores hexadecimales a valores RGB

    const rgb1 = hexToRgb(color1);

    const rgb2 = hexToRgb(color2);



    // Promedia los valores RGB

    const avgRed = Math.floor((rgb1.red + rgb2.red) / 2);

    const avgGreen = Math.floor((rgb1.green + rgb2.green) / 2);

    const avgBlue = Math.floor((rgb1.blue + rgb2.blue) / 2);



    // Convierte los valores RGB promediados de nuevo a formato hexadecimal

    const combinedColor = rgbToHex(avgRed, avgGreen, avgBlue);



    return combinedColor;

}



// Convierte un color hexadecimal a valores RGB

function hexToRgb(hex) {

    // Elimina el '#' si está presente

    hex = hex.replace(/^#/, '');



    // Convierte cada componente a un número decimal

    const bigint = parseInt(hex, 16);

    

    // Extrae los componentes de color

    const red = (bigint >> 16) & 255;

    const green = (bigint >> 8) & 255;

    const blue = bigint & 255;



    return { red, green, blue };

}



// Convierte valores RGB a un color hexadecimal

function rgbToHex(red, green, blue) {

    return `#${(1 << 24 | red << 16 | green << 8 | blue).toString(16).slice(1)}`;

}