Buongiorno! Sto facendo del mio meglio per creare un questionario responsive che, grazie a domande con risposte pesate, possa fornire la rappresentazione grafica del servizio più utile, proprio tramite barre di percentuale decrescenti.
La logica che utilizzo per il calcolo è questa:
Codice PHP:
// Inizializza i punteggi dei servizi
            $punteggi_servizi = array(
                'servizio1' => 0,
                'servizio2' => 0, 
                //etc etc con i vari servizi
            );

                        // Calcola i punteggi per ciascun servizio basato sulle risposte
            foreach ($punteggi_servizi as $servizio => &$punteggio) {
                foreach ($punteggi as $domanda => $risposte) {
                    if (isset($pesi[$servizio][$domanda])) {
                        foreach ($risposte as $risposta) {
                            if (isset($pesi[$servizio][$domanda][$risposta])) {
                                $punteggio += $pesi[$servizio][$domanda][$risposta];
                            }
                        }
                    }
                }
            }
            unset($punteggio); 

            // Ordina i servizi per punteggio decrescente
            arsort($punteggi_servizi);

            echo '<center><h2>I servizi più adatti a te:</h2></center>';
            echo '<table style="border-width: 0px 0 0 0px;">'; 
            echo '<tr>'; 

            $counter = 0; 

            foreach ($punteggi_servizi as $servizio => $punteggio) {
                // Calcolo della percentuale basata sul punteggio massimo
                $percentuale = ($punteggi_servizi['servizio1'] > 0) ? ($punteggio / $punteggi_servizi['servizio1']) *100 : 0;

                echo '<td style="display: grid;">'; 
                echo '<li style="display: flex;">';
                echo '<div class="progress-bar">';
                echo '<div class="progress" style="width: ' . $percentuale . '%;">';
                echo '<span class="service-name">' . $servizio . '</span>';
                echo '</div>';

echo'</div>';[ /PHP ]

il css delle barre è: 
[ PHP ].progress-bar-container {display: flex;
align-items: center;
}

.progress-bar {
background-color: #e0e0e0;
border-radius: 13px;
padding: 3px 10px; 
margin: 10px 0;
flex: 1;
position: relative; 
}

.progress {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: #76c7c0;
    height: 55px;
    border-radius: 10px;
    position: relative;
    //max-width: 100%; 
    //width: <?php echo min($percentuale100); ?>%; 
}

come però poi si può notare da inspector, una volta calcolati i risultati pesati in base alle risposte date esce così:
codice:
<div class="progress-bar">
<div class="progress" style="width: 487.5%;"><span class="service-name">servizio1</span>
</div>
</div>
per cui, varie barre di percentuale escono inevitabilmente dallo schermo. Hoi provato con max-width, ho provato a reimpostare la percentuale nel calcolo, vari tipi di limitazioni e di modifica del css ma non ne vengo a capo.
Magari sarà semplice, ma mi sto scervellando e non ci riesco. Qualcuno ha dunque un'idea che mi possa aiutare? Grazie in anticipo e un'ottima giornata!