format_size() {
    local size=$1  # En Ko
    local units=("Ko" "Mo" "Go" "To" "Po")
    local unit_idx=0
    local decimal=0

    # Tant que la taille est >= 1024 et qu'il reste des unités
    while [[ $size -ge 1024 ]] && [[ $unit_idx -lt $((${#units[@]} - 1)) ]]; do
        # On calcule le reste pour avoir une décimale (multiplication par 100)
        # On simule scale=2 : (taille * 100 / 1024)
        local total_centiemes=$(( size * 100 / 1024 ))
        size=$(( total_centiemes / 100 ))
        decimal=$(( total_centiemes % 100 ))
        ((unit_idx++))
    done

    # Formatage de la sortie
    if [[ $decimal -eq 0 ]]; then
        echo "${size}${units[$unit_idx]}"
    else
        # On s'assure que le decimal a toujours 2 chiffres (ex: 05 au lieu de 5)
        printf "%d.%02d%s\n" "$size" "$decimal" "${units[$unit_idx]}" | sed 's/\.00//; s/0$//'
    fi
}

pause() {
    echo ""
    msg_info "Appuyez sur une touche pour continuer..."
    read -n 1 -s -r
}

is_sys_lxc() {
    grep -qa container=lxc /proc/1/environ 2>/dev/null
}